Hello All, Since my last post to this list I have constructed send and recv clients using both JMS and Reactor. Overall they work well and are robust, and fix the issues I was encountering when using Messenger (I was on the wrong track using Reactor at one point but Robbie Gemmell pointed out my mistake; I went away and read the AMQP spec etc. in an effort to understand things better and it appears to have paid off)...
However, there is one major problem that I am encountering with Qpid JMS that I am unsure how to resolve... Whether I use receive() with a timeout or receiveNoWait(), receive hangs when no messages are present. More precisely, it hangs at the UNSAFE.park(false, 0L); line of LockSupport.park(): "main@1" prio=5 tid=0x1 nid=NA runnable java.lang.Thread.State: RUNNABLE at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304) at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231) at org.apache.qpid.jms.provider.ProviderFuture.sync(ProviderFuture.java:97) at org.apache.qpid.jms.JmsConnection.pull(JmsConnection.java:764) at org.apache.qpid.jms.JmsConnection.pull(JmsConnection.java:753) at org.apache.qpid.jms.JmsMessageConsumer.performPullIfRequired(JmsMessageConsumer.java:627) at org.apache.qpid.jms.JmsMessageConsumer.dequeue(JmsMessageConsumer.java:259) at org.apache.qpid.jms.JmsMessageConsumer.receive(JmsMessageConsumer.java:192) ... Once receive() has locked up it does not resume, even if I subsequently send a message to the appropriate queue. It is eventually shaken out of this state by the broker: "javax.jms.JMSException: Transport closed due to the peer exceeding our requested idle-timeout"... I have tried using both HornetQ and Artemis as the broker. I have also tried ActiveMQ. It does NOT occur on ActiveMQ, so I am wondering if it is in some way related to how the client interacts with a particular broker... Does anyone have any ideas as to what may be going on? Thank you & regards, Matthew --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
