Hi,
Here are two thread dumps, plus the exception reported by the
ExceptionListener registered on the JMS TopicConnection. I hope this helps,
as setting an aggressive timeout on socket as suggested by James may not be
a viable option.
ExceptionListener reports following error within 10 seconds after network
failure
2006-04-18 11:10:49,127 [tcp:///143.102.32.175:8000] - Got JMSError
notification
javax.jms.JMSException: Connection reset
at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:45)
at
org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1397)
at
org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1406)
at
org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:102)
at
org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:102)
at
org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:102)
at
org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:120)
at
org.apache.activemq.transport.InactivityMonitor.onException(InactivityMonitor.java:149)
at
org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:100)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:152)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:48)
at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:55)
at java.io.DataInputStream.readInt(DataInputStream.java:443)
at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:270)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:138)
... 1 more
First thread dump within a minute after the connection reset reported by
ExceptionListener
Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):
"DestroyJavaVM" prio=5 tid=0x00036198 nid=0xc98 waiting on condition
[0..7fad8]
"Thread-1" prio=5 tid=0x02dce450 nid=0xa94 in Object.wait()
[303f000..303fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x10059c58> (a
org.apache.activemq.transport.FutureResponse)
at java.lang.Object.wait(Object.java:429)
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.waitFor(FutureTask.java:267)
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.get(FutureTask.java:117)
- locked <0x10059c58> (a
org.apache.activemq.transport.FutureResponse)
at
org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:44)
- locked <0x10059c58> (a
org.apache.activemq.transport.FutureResponse)
at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:69)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1108)
at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1524)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:462)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:384)
at
org.apache.activemq.ActiveMQTopicPublisher.publish(ActiveMQTopicPublisher.java:151)
at
com.nec.tdd.tools.platformX.util.PingJMSMsg$Publisher.publishMessage(PingJMSMsg.java:122)
at
com.nec.tdd.tools.platformX.util.PingJMSMsg$Publisher.run(PingJMSMsg.java:102)
"ActiveMQ Scheduler" daemon prio=5 tid=0x02db53f8 nid=0x7c0 in Object.wait()
[2fff000..2fffd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x10560500> (a java.lang.Object)
at java.lang.Object.wait(Object.java:398)
at
edu.emory.mathcs.backport.java.util.concurrent.TimeUnit.timedWait(TimeUnit.java:301)
at
edu.emory.mathcs.backport.java.util.concurrent.DelayQueue.take(DelayQueue.java:156)
- locked <0x10560500> (a java.lang.Object)
at
edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:590)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:477)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
at java.lang.Thread.run(Thread.java:534)
"ActiveMQ Scheduler" daemon prio=5 tid=0x02dd03c8 nid=0x418 in Object.wait()
[2fbf000..2fbfd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x10560500> (a java.lang.Object)
at java.lang.Object.wait(Object.java:398)
at
edu.emory.mathcs.backport.java.util.concurrent.TimeUnit.timedWait(TimeUnit.java:301)
at
edu.emory.mathcs.backport.java.util.concurrent.DelayQueue.take(DelayQueue.java:156)
- locked <0x10560500> (a java.lang.Object)
at
edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:590)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:477)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
at java.lang.Thread.run(Thread.java:534)
"Signal Dispatcher" daemon prio=10 tid=0x0003e408 nid=0xecc waiting on
condition [0..0]
"Finalizer" daemon prio=9 tid=0x009bffd0 nid=0xcd8 in Object.wait()
[2b5f000..2b5fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x104fd240> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x104fd240> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x009beba0 nid=0x8e0 in Object.wait()
[2b1f000..2b1fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x104fd2a8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
- locked <0x104fd2a8> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=5 tid=0x009fb6b0 nid=0xdb8 runnable
"VM Periodic Task Thread" prio=10 tid=0x009fcb58 nid=0x7a0 waiting on
condition
"Suspend Checker Thread" prio=10 tid=0x009c2508 nid=0xe64 runnable
Second thread dump about approx 15 mins after the first one
Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):
"DestroyJavaVM" prio=5 tid=0x00036198 nid=0xc98 waiting on condition
[0..7fad8]
"Thread-1" prio=5 tid=0x02dce450 nid=0xa94 in Object.wait()
[303f000..303fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x10059c58> (a
org.apache.activemq.transport.FutureResponse)
at java.lang.Object.wait(Object.java:429)
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.waitFor(FutureTask.java:267)
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.get(FutureTask.java:117)
- locked <0x10059c58> (a
org.apache.activemq.transport.FutureResponse)
at
org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:44)
- locked <0x10059c58> (a
org.apache.activemq.transport.FutureResponse)
at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:69)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1108)
at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1524)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:462)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:384)
at
org.apache.activemq.ActiveMQTopicPublisher.publish(ActiveMQTopicPublisher.java:151)
at
com.nec.tdd.tools.platformX.util.PingJMSMsg$Publisher.publishMessage(PingJMSMsg.java:122)
at
com.nec.tdd.tools.platformX.util.PingJMSMsg$Publisher.run(PingJMSMsg.java:102)
"ActiveMQ Scheduler" daemon prio=5 tid=0x02db53f8 nid=0x7c0 in Object.wait()
[2fff000..2fffd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x10560500> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at
edu.emory.mathcs.backport.java.util.concurrent.DelayQueue.take(DelayQueue.java:152)
- locked <0x10560500> (a java.lang.Object)
at
edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:590)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:477)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
at java.lang.Thread.run(Thread.java:534)
"ActiveMQ Scheduler" daemon prio=5 tid=0x02dd03c8 nid=0x418 in Object.wait()
[2fbf000..2fbfd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x10560500> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at
edu.emory.mathcs.backport.java.util.concurrent.DelayQueue.take(DelayQueue.java:152)
- locked <0x10560500> (a java.lang.Object)
at
edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:590)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:477)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
at java.lang.Thread.run(Thread.java:534)
"Signal Dispatcher" daemon prio=10 tid=0x0003e408 nid=0xecc waiting on
condition [0..0]
"Finalizer" daemon prio=9 tid=0x009bffd0 nid=0xcd8 in Object.wait()
[2b5f000..2b5fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x104fd240> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x104fd240> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x009beba0 nid=0x8e0 in Object.wait()
[2b1f000..2b1fd8c]
at java.lang.Object.wait(Native Method)
- waiting on <0x104fd2a8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
- locked <0x104fd2a8> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=5 tid=0x009fb6b0 nid=0xdb8 runnable
"VM Periodic Task Thread" prio=10 tid=0x009fcb58 nid=0x7a0 waiting on
condition
"Suspend Checker Thread" prio=10 tid=0x009c2508 nid=0xe64 runnable
thanks
karthik
--
View this message in context:
http://www.nabble.com/publish%28%29-call-to-remote-JMS-server-hangs-t1446830.html#a3970530
Sent from the ActiveMQ - User forum at Nabble.com.