标签: jms

将JMS侦听器重新连接到JBossMQ

我们有一个Java监听器,它从JBossMQ中的队列中读取文本消息.如果我们必须重新启动JBoss,监听器将不会重新连接并再次开始阅读消息.我们每隔2分钟就会在侦听器的日志文件中收到消息,说它无法连接.我们的代码或JBossMQ中是否有设置?我是JMS的新手,所以任何帮助都将不胜感激.谢谢.

java jboss jms jbossmq

13
推荐指数
3
解决办法
8763
查看次数

显示Oracle AQ SYS.AQ $ _JMS_TEXT_MESSAGE的内容

我有一个使用JMS op Oracle Oracle高级排队的应用程序.我想对队列表进行查询,该查询显示消息的内容(在我的例子中是XML).因此,当我从[queue_table]中选择'select user_data'时,我得到'AQ SYS.AQ $ _JMS_TEXT_MESSAGE'作为回复.

是否有一个功能,以便显示此消息的内容?像[queue_table]'中的'select FUNCTION(user_data)'之类的东西?

我用Google搜索,扫描了许多关于排队的Oracle文章,但我找不到这个东西.我怀疑有一种简单的方法可以做到这一点,但我找不到它.

oracle jms advanced-queuing

13
推荐指数
2
解决办法
2万
查看次数

PointToPoint与JMS中的发布/订阅模型?

我是JMS的新手.我已经开始使用hello world,我将从主题上的java应用程序发布消息并从客户端(node.js javascript)监听它.我已经通过http://en.wikipedia.org/wiki/Java_Message_Service.现在我有一些疑问,基于我的先前理论理解和上面链接建议的内容?

根据我的理解,点对点是队列实现,其中最多只有一个消费者在队列上订阅并且只能被消费者使用.生产者和消费者都不知道彼此.在我的案例Apache主动MQ中,Queue托管在消息代理上.生成器可以在发布消息之前创建队列(或者可以事先从控制台创建).

在发布/订阅模型的情况下,它几乎与PointToPoint相同,除了我们使用Topic而不是queue的事实.在这个模型中,Topic上可以有更多的消费者.消息发布后,将通知所有订阅者.现在,如果任何订户发送已发布消息的确认消息,消息将被视为已消耗,并且新用户将无法再使用该消息?

java jms mom publish-subscribe

13
推荐指数
1
解决办法
2万
查看次数

在应用程序中使用IBM MQ客户机jar连接到IBM MQ服务器时无响应

我正在处理的应用程序需要与远程位置的IBM MQ服务器进行通信.我们目前有一个使用活动MQ的工作系统,它使用代理,以及连接到这个远程IBM MQ服务器的桥,并且工作正常.

由于一些新的增强,我们现在尝试使用IBM客户端jar而不是Active MQ来实现相同的功能.

我面临的问题是我可以连接到远程服务器的inboundQ并发送消息.但我总是从远程服务器出站队列接收null.但我无法检查是否在远程位置收到了消息.但是,如果通过旧的ActiveMQ系统发送相同的消息将从远程MQ服务器获得响应.

旧的Active MQ在内部使用桥连接到远程IBM MQ服务器,该服务器的配置与我正在使用的新代码完全相同.

我已尝试从互联网和堆栈溢出本身的多个代码,并始终我能够连接但没有得到任何响应.

此外,尝试从远程IBM MQ发送或接收时,我没有收到任何错误或异常.

我将粘贴一个我试图开始工作的示例代码.我在代码中更改了一些配置值.

我怀疑如下.

  1. 我正在做的就是将IBM MQ客户端jar复制到应用程序中,并使用代码将消息发送到远程MQ.我还没有安装任何其他应用程序.这样的系统会工作还是应该总是有一些像活动MQ这样的中间程序?

  2. 相同的代码能够从我在本地网络中安装但未能从远程服务器获得响应的IBM MQ服务器发送和接收?这让我相信如果我在配置中遗漏了什么?除了在代码中还应该配置什么?

  3. 我看到没有错误或例外.始终发送消息但响应为空.我没有看到任何用户名密码或公钥 - 私钥认证的使用.是否通常使用任何身份验证来检查源.?

  4. 我正在使用IBM MQ客户端5.3版本,我知道它已经过时了.但是使用它,因为它们工作的主动MQ设置使用相同的并且正常工作.我无法知道远程计算机上的IBM MQ服务器上存在哪个版本.如果我们使用与服务器MQ版本不同的客户端MQ版本,是否存在问题.?

在本地环境中适用于我的示例代码,即能够从我在本地网络中的另一台机器上安装的IBM MQ服务器发送和接收.当我尝试将其与远程IBM MQ服务器一起使用时,相同的代码将获取null响应.

import javax.jms.*;
import javax.jms.JMSException;
import com.ibm.mq.jms.*;
import com.ibm.jms.JMSMessage;
import javax.jms.TextMessage;

public class SendReceive {
    private MQQueueConnectionFactory connectionFactory;
    private MQQueueConnection connection;

    private void runTest() {
        try {
            connect();
            connection.start();
            MQQueueSession session = (MQQueueSession) connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
            MQQueue queue = (MQQueue) session.createQueue("INBOUND_QUEUE");     /* values  replaced with correct values in deployment server */
            MQQueue queue2 = (MQQueue) …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic jms message-queue ibm-mq

13
推荐指数
1
解决办法
857
查看次数

使用JMS(ActiveMQ)进行单元测试

如何使用JMS进行单元测试?这是事实吗?

我google了一些东西 - JMS的单元测试:http ://activemq.apache.org/how-to-unit-test-jms-code.html - jmsTemplate:activemq.apache.org/jmstemplate-gotchas.html - mockRunner:mockrunner .sourceforge.net /

你对我有什么好的经验和建议吗?

unit-testing activemq-classic jms mocking jmstemplate

12
推荐指数
2
解决办法
1万
查看次数

在Java中通过JMS发送复杂对象

是否可以通过JMS发送复杂的消息?我可以发送TextMessages,消息等..但是当我尝试发送我的自定义对象类型MyObjecttrough send()方法时,MessageProducer我得到编译错误.

然后我试着施展它,我得到施放异常之类的 MyObject cannot be cast to javax.jms.Message

这是我试过的代码:

MessageProducer messageProducer = session.createProducer(destination);
messageProducer.send((Message)getMyObject()); //where getMyObject method retrieves mapped myObject type
Run Code Online (Sandbox Code Playgroud)

有人有什么建议吗?谢谢

java messaging jms

12
推荐指数
1
解决办法
2万
查看次数

ApacheActiveMQ和ApacheActiveMQApollo之间的区别

Apache ActiveMQ与Apache ActiveMQ Apollo有什么区别?

Apollo文档说:"ActiveMQ Apollo是一个更快,更可靠,更易于维护的消息代理,它是从原始ActiveMQ的基础构建的.它使用完全不同的线程和消息调度架构来实现这一点."但是没有java样本代码和良好的用户指南.

有人在实时环境中使用ApacheActiveMQApollo吗?对原始ActiveMQ做得更好吗?

java activemq-classic jms messagebroker apollo

12
推荐指数
1
解决办法
6012
查看次数

如何从JMS队列中删除消息

是否有任何API可以在不使用监视管理工具的情况下从JMS队列中删除消息.

java jms

12
推荐指数
3
解决办法
3万
查看次数

IBM WebSphere MQ请求/回复方案

我目前正在开发一个项目,我需要与IBM系统进行交互,该系统通过WebSphere MQ与外部世界进行通信.我需要使用队列以"请求 - 响应"方式查询系统,我将通过队列管理器执行此操作.

但是,我无法理解这在实际工作中是如何运作的.

假设我有相同应用程序的多个实例,它们将消息放入请求队列.该消息得到了CorrelationIdMessageId在离开应用程序和ReplyToQueue属性,都会设置每封邮件,以确保该队列管理器知道哪个队列把到响应.

但是,队列管理器如何操作响应队列?关于响应的时间安排无法保证,那么正确的响应如何回到发出相应请求的应用程序实例?

我一直认为消息队列是一个FIFO队列,必须逐个拾取消息.但是,这意味着实例A可以选择针对例如B的响应.显然,这不是它的工作原理.

然后,当我看API( com.ibm.mq.MQQueue)我看到来接的消息我有机会提供CorrelationIdMessageId请求消息的.这是否意味着当我向队列管理器查询消息(具有这些ID的集合)时,队列管理器会遍历队列中的消息并返回匹配的消息?另一方面,这意味着我们不是在谈论FIFO队列?

jms message-queue ibm-mq

12
推荐指数
2
解决办法
1万
查看次数

如何为多个主题配置多个JmsListener

在我的项目中,我添加了两个不同的JmsListener但是当我在ActiveMQ面板中运行项目时,只有其中一个主题有消费者!

那么我应该为每个JmsListener添加单独的jmsListenerContainerFactory配置吗?

@JmsListener(destination = "foo1")
public void foo1(final Message jsonMessage) throws JMSException {
    ...
}

@JmsListener(destination = "foo2")
public void foo12(final Message jsonMessage) throws JMSException {
    ...
}
Run Code Online (Sandbox Code Playgroud)

编辑:这是来自JMS配置文件:

@Configuration
@EnableJms
public class FooJmsConfig {

    @Bean
    public ActiveMQConnectionFactory connectionFactory() {
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
        connectionFactory.setBrokerURL(BROKER_URL);
        connectionFactory.setPassword(BROKER_USERNAME);
        connectionFactory.setUserName(BROKER_PASSWORD);
        connectionFactory.setUseCompression(true);
        connectionFactory.setClientID("FPP_API");
        connectionFactory.setConnectionIDPrefix("DRR");
        connectionFactory.setUseAsyncSend(true);
        return connectionFactory;
    }

    @Bean
    public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory());
        factory.setConcurrency("1-1");
        factory.setPubSubDomain(true);
        factory.setSubscriptionDurable(true);
        return factory;
    }
}
Run Code Online (Sandbox Code Playgroud)

java activemq-classic jms

12
推荐指数
2
解决办法
2458
查看次数