java - 使用 JMS 发送消息

标签 java c++ jms activemq

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

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

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

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

我嗅探了网络,发现在 机器 A 的情况下,它发送 TCP-ACK 然后是 TCP PSH-ACK(与正确 react )。但是 机器 C 只发送 TCP-ACK *没有* TCP-PSH-ACK

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

感谢任何帮助!

最佳答案

看起来解决方案很明显,我有点尴尬没有注意到它。无论如何,在机器 A 上运行的代码似乎使用了一个非事务 session ,而在机器 C 上运行的代码使用了一个事务 session 没有 COMMITING!!!!.

所以我关闭了 session 的事务标志(无论如何它都符合我的需要),它就像一个魅力!

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

关于java - 使用 JMS 发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11313538/

相关文章:

java - 图片上传不起作用?

c++ - 将模板方法移动到派生中断编译

c++ - 如何检查C++中字符的unicode值范围

java - Gradle 文件未通过 cmd 执行

java - Selenium 用 Ja​​va 如何处理组合框

c++ - 从 C++ 中的 BST 中提取子树

caching - 如何在 Ofbiz 中实现 "Distributed cache clearing"?

java - 保持 spring 上下文 Activity ,直到 JMS 消息被消费

java - 如何利用 Apache Activemq 的连接池?

java - 考虑运行时配置类型应用程序的最佳实践/最佳设计选择