繁体   English   中英

在生产者连接关闭之前不使用JMS消息:-(

[英]JMS Messages not consumed till producer connection close :-(

我对JMS相对较新,在实现我的第一个实际应用程序时遇到了一个奇怪的问题。 我很乐意提供任何帮助或建议。

背景:我将AtiveMQ(java)用作具有非事务,非持久队列的消息代理。

设计:我有一个基于单个队列的简单的生产者/消费者系统。 许多节点(当前为2个)将消息放入队列或从队列中使用。 选择器用于过滤节点收到的消息。

问题:生产者成功地将其项目放置到队列中(我已经使用Web界面验证了它们的存在),但是消费者仍然处于阻塞状态,并且不读取它们。 只有当我关闭生产者中的JMS连接时,消费者才能进入生活并按预期使用消息。

这对我来说似乎很不可思议,您当然不必完全挂断生产者连接,以便消费者能够从队列中读取内容。 我一定在某个地方犯了一个错误(可能是在会话中),但此刻可能出错的事情太多了,我不知道会导致这种行为的原因。

关于解决方案,问题原因或如何继续调试的任何提示将不胜感激。

谢谢你的时间,

PS:如果您需要任何其他信息,我很乐意提供

不看代码就很难说,但是听起来好像是生产者被交易了。 您不必为了让使用者接收消息而关闭生产者,但是事务处理的生产者在您调用commit之前不会向其发送消息。 其他要检查的是连接已启动。 同样,如果您有许多使用者,则应查看预取设置以确保一个使用者不会占用所有消息,可能需要将其设置为1,但是如果不进一步了解用例就很难说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM