2012-02-28 155 views
0

我在使用HornetQ时遇到了一个奇怪的情况。未收到JMS消息

我的应用程序体系结构 -

  • JMS提供者:HornetQ的(独立服务器,不用于其他任何东西,我创建了这个服务器上的2个队列,称Q1和Q2)。
  • Producer:部署在单独机器上的Web应用程序。此应用程序创建“ObjectMessage”的实例,将“Job”类实例作为参数传递给“ObjectMessage.setObject()”方法,并将消息添加到Q1。使用Spring JMS。

在将消息添加到队列中之前,我还在消息中设置了一个名为“AGENT”的字符串属性。

有什么特别的是,如果我调用ObjectMessage.setStringProperty(“AGENT”,null),或者如果我不将该属性添加到消息本身,则消息不会添加到Q1。但是,这在第二季度没有发生,我可以在HornetQ的JMX控制台中看到该消息。

是否有一些队列特定的配置,我应该寻找?

对宽松措辞表示歉意 - 我和我的团队一直面对艰难的时间来解决这个问题。

谢谢。

回答

0

你是如何创建Producer的?你如何发送它?

看来你不是在交易会话上提交?

我假设你正在使用JMS,但我需要看到一些代码以更好的方式来帮助你。通常,JBoss论坛是一个更适合这样讨论的地方,因为SOF并不是真正的讨论论坛。

我认为最好的方法是在JBoss上打开一个论坛(因为它将随后进行讨论)并在此处提供链接。

+0

Clebert,这个问题是我们团队前几天解决的。问题是发送消息到队列的那段代码被多个线程同时访问。修复代码以使其可以线程安全地解决问题。我们仍在试图调查根本原因。不管怎么说,多谢拉。 – 2012-03-09 08:12:44