Connectivity issues
vchmakov Feb 7, 2012 11:42 AMHi,
We are trying to integrate different parts of our system written in different languages using a messaging backbone. We have chosen HornetQ as a message broker and running it under the JBoss AS 7.0.2.
On a very high level the system looks like as follows:
- Server1 (Delphi) is listening on Queue1 and sends to Queue2 via STOMP
- Server2 (Java) is listening on Queue2 and sends to Queue1 via native HornetQ protocol using core API (not JMS)
The problem is that we are experiencing weird disconnects and suspect the STOMP side. The weirdness is in the fact that we do not see any error messages in logs, but HornetQ is creating something which looks very much like a second buffer/consumer on the Queue1 which results in Server1 receiving every second message which obviously is breaking the application level protocol. Please forgive me if I’m not explaining myself clearly. Has anyone been experiencing something similar? Are there any suggestions as to how we could diagnose/troubleshoot the problem to better understand of what is going on?
JBoss xml for HornetQ looks like this:
<subsystem xmlns="urn:jboss:domain:messaging:1.0">
<connection-ttl-override>
86400000
</connection-ttl-override>
<journal-type>
NIO
</journal-type>
<journal-file-size>
102400
</journal-file-size>
<acceptors>
<netty-acceptor name="netty" socket-binding="messaging"/>
<netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">
<param key="batch-delay" value="50"/>
<param key="direct-deliver" value="false"/>
</netty-acceptor>
<in-vm-acceptor name="in-vm" server-id="0"/>
<netty-acceptor name="stomp-acceptor" socket-binding="stomp">
<param key="protocol" value="stomp"/>
</netty-acceptor>
</acceptors>
Sometimes when we restart jBoss we see messages like this:
07:50:55,657 WARN [org.jboss.messaging] (MSC service thread 1-7) failed to destroy jms queue: RuleEngineOutQueue: HornetQException[errorCode=104 message=Cannot delete queue jms.queue.RuleEngineOutQueue on binding jms.queue.RuleEngineOutQueue - it has consumers = org.hornetq.core.postoffice.impl.LocalQueueBinding]
at org.hornetq.core.server.impl.HornetQServerImpl.destroyQueue(HornetQServerImpl.java:1083) [hornetq-core-2.2.7.Final.jar:]
at org.hornetq.jms.server.impl.JMSServerManagerImpl.destroyQueue(JMSServerManagerImpl.java:710) [hornetq-jms-2.2.7.Final.jar:]
at org.jboss.as.messaging.jms.JMSQueueService.stop(JMSQueueService.java:68) [jboss-as-messaging-7.0.2.Final.jar:7.0.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$StopTask.stopService(ServiceControllerImpl.java:1909) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1872) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]
I can understand the meaning of this, but can this add to our troubles?
I’d highly appreciate ANY idea/insight on this. I’m at lost, but the issue is very time-critical.
Thanks,
Vlad