Hello James, I've post this one also as a reply to http://www.nabble.com/Re%3A-Message-queue-getting-blocked-tf3335509s2354.html#a10854794 http://www.nabble.com/Re%3A-Message-queue-getting-blocked-tf3335509s2354.html#a10854794
Cannot test, because the producers block during close. Any thoughts? Name: SAMS-Worker-queue.contact_type-1 State: WAITING on [EMAIL PROTECTED] Total blocked: 10 Total waited: 5 Stack trace: java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) edu.emory.mathcs.backport.java.util.concurrent.locks.CondVar.await(CondVar.java:75) edu.emory.mathcs.backport.java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:318) org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:42) org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:75) org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1175) org.apache.activemq.ActiveMQSession.syncSendPacket(ActiveMQSession.java:1663) org.apache.activemq.ActiveMQMessageConsumer.close(ActiveMQMessageConsumer.java:542) com.daxtechnologies.sams.manager.AbstractSamsManagerQueue.consume(AbstractSamsManagerQueue.java:231) com.daxtechnologies.sams.manager.SamsManagerQueues$AbstractQueueRunnable.consume(SamsManagerQueues.java:456) com.daxtechnologies.sams.manager.SamsManagerQueues$AbstractQueueRunnable.throttleQueue(SamsManagerQueues.java:434) com.daxtechnologies.sams.manager.SamsManagerQueues$AbstractQueueRunnable.run(SamsManagerQueues.java:473) com.daxtechnologies.sams.manager.SamsManagerThreadPool$WorkerThead.run(SamsManagerThreadPool.java:206) James.Strachan wrote: > > On 5/21/07, Adrian Tarau <[EMAIL PROTECTED]> wrote: >> >> Hello, >> >> I have the following problem : A connection(embedded broker, vm >> transport) >> is created and then a few sessions. I poll for messages, with my own >> threads >> in order to do throttling. One thing that confuses me is : if an >> exception >> occurs somewhere in the transport(for example an interrupt on the >> consuming >> thread) , the connection is closed with all the sessions and >> consumers/producers. > > AFAIK thread interupt exceptions won't close a > connection/session/transport. You sure its not some other underlying > excpetion? > > >> I was able to listen for such an exceptions(with >> Connection.setExceptionListener(...)) and recreate the connection. I >> tried >> also with connectionFactory.setBrokerURL("failover:vm://localhost") which >> supposed to fix problems like this one, and to reconnect, but is not >> working >> as espected. > > When using vm:// you should never really need failover, since the > broker is in the same JVM. Failover is intended for use with TCP where > a remote broker may fail. > > Even if you were having a transport level exception (which shouldn't > really happen with vm:// but maybe there's a bug & we should catch & > handle InteruptedException better) then failover does the re-creation > of all the connection/sessions for you so there's no real point trying > to replicate that yourself (as you'll be opening all kinds of cans of > worms, like figuring out which messages, transactions & > acknowledgements were in progress & re-submitting them - all of which > failover: already handles. > > BTW 4.0.2 is quite old, I'd recommend upgrading to 4.1.1 > -- > James > ------- > http://macstrac.blogspot.com/ > > -- View this message in context: http://www.nabble.com/Transport-Exceptions-close-the-connection-tf3791363s2354.html#a10854797 Sent from the ActiveMQ - User mailing list archive at Nabble.com.