我对JMS有一个非常奇怪的问题。
我有两台机器A-Windows,B-Linux。 机器 A初始化 JMS(创建一个生产者和一个消费者)。(Java代码)
机器 B向机器 A发送消息。机器A收到!消息并将响应发送回机器 B。(C++ 代码)
我的问题是:当我运行机器时,代码一切正常!但是当我在另一台 Windows 机器上运行相同的二进制文件时(我们称之为机器 C),来自机器 B的消息被接受,但机器 C不发送答案。
我嗅探了网络,发现在机器 A的情况下,它发送TCP-ACK,然后是TCP PSH-ACK(带有正确的响应)。但是机器 C只发送TCP-ACK *而没有* TCP-PSH-ACK。
编辑: 使用 JConsole 我注意到机器 C的主题属性:DequeueCount、DispatchCount、Enqueue Count 都是零。似乎生产者没有发送/排队任何东西(没有抛出异常)。
任何帮助表示赞赏!