最近几天一直纠结于监听模式。在监听模式下遇到了两个问题。
1.消息接收者不关闭竟然收不到消息。
2.在监听模式下,每次只收一条消息,即使设定了监听,也是只收到一条消息
今天就针对这两个问题作出解答。
对于第一个问题,是这样的。在个别时候能收到消息。但是一般情况下都收不到消息。这个的表象是不关闭的问题,实际上,我认为是因为执行了关闭的方法,这时候使得监听来得及读消息,所以才能读出来一条消息。和关闭不关闭没有关系。测试代码如下:
我把关闭的代码去掉,换成等待5秒钟:
JMSConsumer consumer = new JMSConsumer(); consumer.openConsumer("localhost", 1414, "QMTest", "testQueue", false); ((JMSConsumer) consumer).receiveMessage(); Thread.currentThread().sleep(5000);
这样照旧能读出消息。
对于第二种问题,可以这样理解。因为源码中并没有使用线程,因此,一个j2se程序虽然加了监听,但是程序执行完毕了就完了。因此即使添加了相应也没有用。如果队列里有消息,也只是调用一次接收消息,下一条消息还没来得及接收程序就执行完毕了。这也解释了为什么我在receiveMessage方法中增加了延迟,这时候能收多条消息的原因。解决方式就是使用一个线程,让程序不停的跑。
垃圾代码见附件。
相关推荐
目的:通过JMS 实现 IBM MQ的请求应答功能 工作原理:消息生产者发送消息到队列IN1,然后可以异步或者同步等待消费者接收到IN1消息后,生成应答消息,并发布到IN2队列中。生产者通过messageid在IN2队列中进行消息...
1) 本工程主要演示在SPRING BOOT工程中怎样使用JMS集成IBM-MQ及TLQ两种消息中间件产品 2) 使用SPRING BOOT Conditional机制实现了两种产品按需加载,工程会根据配置文件开关动态加载 3) 实现了普通队列消息发送与...
JMS 操作IBM MQ,实现订阅发布模式!包含完整的JAR包以及测试文件。
JMS 客户端模式实现服务端、客户端;实现同步以及异步的收发处理;
详细描述了怎样在IBM WebSphere 6.1中配置IBM MQ,最后给出了通过JMS验证的方法和几个详细示例。
IBM MQ 7.5.0 windows版本压缩包第一部分,共4部分(分割是为了满足平台只能上传110MB文件的要求)。IBM MQ是JMS协议的一个实现,广泛用在系统集成中。
MQ所需要的九个包下载大全 aspectjrt-1.5.2 com.ibm.mq.fta com.ibm.mq com.ibm.mq.jmqi com.ibm.mq.jms.Nojndi com.ibm.mq.soap com.ibm.mqetclient com.ibm.mqjms connector-1.0
用jms 向webshpere mq里发送消息
IBM WebSphere MQ 支持两种不同的应用程序编程接口:Java 消息服务(JMS)和消息队列接口(MQI)。在 IBM WebSphere MQ 服务器上,JMS 绑定方式被映射到 MQI。应用程序直接与其本地队列管理器通过使用 MQI 进行对话...
操作ibm mq用到的jar包,包括com.ibm.mqjms.jar,com.ibm.mqetclient.jar,com.ibm.mq.soap.jar,com.ibm.mq.jms.Nojndi.jar,com.ibm.mq.jar,com.ibm.mq.fta.jar,aspectjrt.jar
com.ibm.mq.jms.Nojndi.jar com.ibm.mq.soap.jar com.ibm.mqetclient.jar com.ibm.mqjms.jar commonservices.jar connector.jar dhbcore.jar fscontext.jar jdbc jms.jar jndi.jar jta.jar ldap.jar postcard.jar ...
IBM websphereMQ 8.0.0.5 lib包; IBM\WebSphere MQ\java\lib下的文件 文件列表: com.ibm.mq.jms.Nojndi.jar com.ibm.mq.pcf.jar com.ibm.mq.allclient.jar com.ibm.mq.postcard.jar com.ibm.mq.axis2.jar ...
IBM MQ 7.5.0 windows版本压缩包第二部分,共4部分(分割是为了满足平台只能上传110MB文件的要求)。IBM MQ是JMS协议的一个实现,广泛用在系统集成中。
实现远程消息安全传递 IBM MQ java jar包 aspectjrt.jar com.ibm.mq.fta.jar com.ibm.mq.jar com.ibm.mq.jms.Nojndi.jar com.ibm.mq.soap.jar com.ibm.mqetclient.jar com.ibm.mqjms.jar
IBM MQ 7.5.0 windows版本压缩包第四部分,共4部分(分割是为了满足平台只能上传110MB文件的要求)。IBM MQ是JMS协议的一个实现,广泛用在系统集成中。
Websphere MQ JavaJMS 客户端的 SSL 配置.doc
spring boot jsm ibmmq topic queue 两种方式实现
com.ibm.mq.fta.jar com.ibm.mq.jar com.ibm.mq.jms.Nojndi.jar com.ibm.mq.soap.jar com.ibm.mqetclient.jar com.ibm.mqjms.jar aspectjrt.jar
带有 JMS 1.0.2 和 Spring 3.2.x 的 IBM MQ 使用 IBM MQ 和 Spring 3.2.x 的 JMS 1.0.2 示例配置