Hi,

I have a recurring problem on an ActiveMQ setup. This is what happens. There
are a lot of "ActiveMQ Transport tcp://..." threads being created and
destroyed after a couple of seconds, but sometimes one of these Threads
never stop and stay in a runnable state. This is what the Thread dump looks
like

"ActiveMQ Transport: tcp:///10.10.110.131:61616" - Thread t@78
   java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.readStream(TcpBufferedInputStream.java:70)
at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:92)
at java.io.DataInputStream.readFully(DataInputStream.java:178)
at java.io.DataInputStream.readFully(DataInputStream.java:152)
at
org.apache.activemq.openwire.v5.BaseDataStreamMarshaller.tightUnmarshalByteSequence(BaseDataStreamMarshaller.java:441)
at
org.apache.activemq.openwire.v5.MessageMarshaller.tightUnmarshal(MessageMarshaller.java:72)
at
org.apache.activemq.openwire.v5.ActiveMQMessageMarshaller.tightUnmarshal(ActiveMQMessageMarshaller.java:66)
at
org.apache.activemq.openwire.v5.ActiveMQTextMessageMarshaller.tightUnmarshal(ActiveMQTextMessageMarshaller.java:66)
at
org.apache.activemq.openwire.OpenWireFormat.tightUnmarshalNestedObject(OpenWireFormat.java:459)
at
org.apache.activemq.openwire.v5.BaseDataStreamMarshaller.tightUnmarsalNestedObject(BaseDataStreamMarshaller.java:126)
at
org.apache.activemq.openwire.v5.MessageDispatchMarshaller.tightUnmarshal(MessageDispatchMarshaller.java:71)
at
org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:366)
at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:279)
at
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:210)
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:202)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
- None

If I look at the ActiveMQ admin console the queue message count on which the
client is listening to increases to 1000 messages. (the default queue
prefetch size). Some messages go through and are being consumed by another
consumer on the same client, but the hanging consumer keeps getting some
messages from time to time. I need to kill the client, a normal shutdown
sequence is unable to stop the hanging activemq transport thread.

Decreasing the queue prefetch to 1 seems to solve the problem, I haven't
seen the problem since then.

Has anyone seen a similar problem, I would like to know what went wrong so
the same problem doesn't bite me later on?

Regards,
Leen

Reply via email to