使用 JMS 发送消息

Sending a message using JMS

本文关键字:消息 JMS 使用      更新时间:2023-10-16

我在JMS上遇到了一个非常奇怪的问题。

我有两台机器A-Windows,B-Linux机器 A 初始化 JMS(创建一个生产者和一个消费者)。(Java代码

计算机 B计算机 A 发送消息。机器 A 收到!消息并将响应发送回计算机 B。(C++代码

我的问题是:当我运行机器 A 代码时,一切正常!但是当我在另一台 Windows 机器上运行相同的二进制文件(我们称之为机器 C)时,来自机器 B 的消息被接受,但机器 C 不发送答案。

我嗅探了网络,发现在机器A的情况下,它发送TCP-ACK,然后发送TCP PSH-ACK(具有正确的响应)。但是机器C只发送TCP-ACK,而不发送TCP-PSH-ACK

编辑:使用 JConsole 我注意到机器 C 的 out 主题属性:DequeueCount、DispatchCount、Enqueue Count 都是零。似乎生产者没有发送/排队任何东西(没有抛出异常)。

任何帮助不胜感激!

似乎解决方案是如此明显,我没有注意到它而感到有点尴尬。无论如何,似乎机器 A 上运行的代码使用了非事务会话,而机器 C 上的代码使用了事务会话而不

提交!!!.

所以我关闭了会话的交易标志(因为它无论如何都符合我的需求),它就像一个魅力!

关于在没有提交 svn 的情况下对代码进行更改的家伙......我稍后会和他谈谈:)