JMS thread hangs on socketWrite during client message delivery

Solution Verified - Updated -

Issue

  • We can see a JMS thread hang for quite some time on a socketWrite during a client message delivery:
    "WorkerThread#14[127.0.0.1:50175]" prio=10 tid=0x000000005c708000 nid=0x590 runnable [0x0000000047dd9000]
       java.lang.Thread.State: RUNNABLE
         at java.net.SocketOutputStream.socketWrite0(Native Method)
         at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
         at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
         at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
         at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
         - locked <0x00000000c02a38a0> (a java.io.BufferedOutputStream)
         at java.io.DataOutputStream.flush(DataOutputStream.java:106)
         at org.jboss.jms.wireformat.ClientDelivery.write(ClientDelivery.java:93)
         at org.jboss.jms.wireformat.JMSWireFormat.write(JMSWireFormat.java:237)
         at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedWrite(MicroSocketClientInvoker.java:940)
         at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:575)
         at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:422)
         at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:141)
         at org.jboss.remoting.Client.invoke(Client.java:1858)
         at org.jboss.remoting.Client.invoke(Client.java:718)
         at org.jboss.remoting.Client.invokeOneway(Client.java:769)
         at org.jboss.remoting.callback.ServerInvokerCallbackHandler.handleCallback(ServerInvokerCallbackHandler.java:829)
         at org.jboss.remoting.callback.ServerInvokerCallbackHandler.handleCallbackOneway(ServerInvokerCallbackHandler.java:700)
         at org.jboss.jms.server.endpoint.ServerSessionEndpoint.performDelivery(ServerSessionEndpoint.java:1467)
         at org.jboss.jms.server.endpoint.ServerSessionEndpoint.handleDelivery(ServerSessionEndpoint.java:1379)
         - locked <0x00000000c02fcd98> (a org.jboss.jms.server.endpoint.ServerSessionEndpoint)
         at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.java:327)
         - locked <0x00000000c034c078> (a java.lang.Object)
         at org.jboss.messaging.core.impl.RoundRobinDistributor.handle(RoundRobinDistributor.java:119)
         at org.jboss.messaging.core.impl.MessagingQueue$DistributorWrapper.handle(MessagingQueue.java:583)
         at org.jboss.messaging.core.impl.ClusterRoundRobinDistributor.handle(ClusterRoundRobinDistributor.java:79)
         at org.jboss.messaging.core.impl.ChannelSupport.deliverInternal(ChannelSupport.java:670)
         at org.jboss.messaging.core.impl.MessagingQueue.deliverInternal(MessagingQueue.java:506)
         at org.jboss.messaging.core.impl.ChannelSupport.handle(ChannelSupport.java:251)
         - locked <0x00000000c034c370> (a java.lang.Object)
         at org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.routeInternal(MessagingPostOffice.java:2228)
         at org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.route(MessagingPostOffice.java:515)
         at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendMessage(ServerConnectionEndpoint.java:777)
    

Environment

  • JBoss Enterprise Application Platform (EAP)
    • JBoss Messaging
    • JBoss Remoting

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In