JMS调用IBM MQ监听模式
来源:互联网 发布:整型变量的数据范围 编辑:程序博客网 时间:2024/04/30 19:54
最近几天一直纠结于监听模式。在监听模式下遇到了两个问题。
1.消息接收者不关闭竟然收不到消息。
2.在监听模式下,每次只收一条消息,即使设定了监听,也是只收到一条消息
今天就针对这两个问题作出解答。
对于第一个问题,是这样的。在个别时候能收到消息。但是一般情况下都收不到消息。这个的表象是不关闭的问题,实际上,我认为是因为执行了关闭的方法,这时候使得监听来得及读消息,所以才能读出来一条消息。和关闭不关闭没有关系。测试代码如下:
我把关闭的代码去掉,换成等待5秒钟:
- JMSConsumer consumer = new JMSConsumer();
- consumer.openConsumer("localhost", 1414, "QMTest", "testQueue", false);
- ((JMSConsumer) consumer).receiveMessage();
- Thread.currentThread().sleep(5000);
JMSConsumer consumer = new JMSConsumer();consumer.openConsumer("localhost", 1414, "QMTest", "testQueue", false);((JMSConsumer) consumer).receiveMessage();Thread.currentThread().sleep(5000);
这样照旧能读出消息。
对于第二种问题,可以这样理解。因为源码中并没有使用线程,因此,一个j2se程序虽然加了监听,但是程序执行完毕了就完了。因此即使添加了相应也没有用。如果队列里有消息,也只是调用一次接收消息,下一条消息还没来得及接收程序就执行完毕了。这也解释了为什么我在receiveMessage方法中增加了延迟,这时候能收多条消息的原因。解决方式就是使用一个线程,让程序不停的跑。
- JMS调用IBM MQ监听模式
- spring监听与IBM MQ JMS整合
- spring监听与IBM MQ JMS整合
- 用 IBM WebSphere MQ JMS 提供程序
- java多线程监听JMS、MQ队列
- java多线程监听JMS、MQ队列
- java多线程监听JMS、MQ队列
- websphere mq jms调用通信demo
- JMS 接收 IBM Websphere MQ 消息报错 :JMSCC0065
- TIBCO Rendezvous、IBM MQ和JMS消息中间件技术比较
- Spring Boot JMS与IBM WebSphere MQ集成配置
- Spring整合JMS、IBM MQ发送和接收消息
- JMS MQ
- mq jms
- IBM MQ
- TIBCO RV, IBM MQ和JMS消息中间件的对比分析
- 使用MQ JMS
- JMS与MQ
- frameSet和iframe的基本理解
- jquery实现页面滚动到最下方自动按分页的形式加载内容效果
- 笔记通过查询创建表
- 多线程编程2 - NSOperation
- Eclipse使用过程中出现java.lang.NoClassDefFoundError的解决方案
- JMS调用IBM MQ监听模式
- Excel 在测试中的应用(二)--添加功能键
- perl-opengl几何变换函数
- 有效的沟通非常重要
- 对象和函数
- Uva 540 Team Queue
- AWS 上 Apache httpd 服务器性能调优
- 数学杂记
- 什么是java