We are experiencing the exact same problem on Linux. This is very easy to 
reproduce. Have two clients running against a server and pull the network cable 
from one of the clients simulating a kernel death. A few seconds later, the 
server puts out:

anonymous wrote : 13:07:15,064 WARN  [SimpleConnectionManager] A problem has 
been detected with the connection to remote client 
5c4o12v-svccoz-fs969gkr-1-fs96isi3-1z, 
jmsClientID=b1-uvp969sf-1-rkg969sf-zoccvs-v21o4c5. It is possible the client 
has exited without closing its connection(s) or the network has failed. All 
associated connection resources will be cleaned up.

If you dump the stack trace you will see:

anonymous wrote : 
  | 
  | Timer-87" Id=954 RUNNABLE (in native)
  |         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 java.io.bufferedoutputstr...@4773d99f
  |         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:971)
  |         at 
org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:606)
  |         at 
org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:422)
  |         at 
org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:133)
  |         at org.jboss.remoting.Client.invoke(Client.java:1645)
  |         at org.jboss.remoting.Client.invoke(Client.java:559)
  |         at org.jboss.remoting.Client.invokeOneway(Client.java:609)
  |         at 
org.jboss.remoting.callback.ServerInvokerCallbackHandler.handleCallback(ServerInvokerCallbackHandler.java:826)
  |         at 
org.jboss.remoting.callback.ServerInvokerCallbackHandler.handleCallbackOneway(ServerInvokerCallbackHandler.java:697)
  |         at 
org.jboss.jms.server.endpoint.ServerSessionEndpoint.performDelivery(ServerSessionEndpoint.java:1452)
  |         at 
org.jboss.jms.server.endpoint.ServerSessionEndpoint.handleDelivery(ServerSessionEndpoint.java:1364)
  |         -  locked 
org.jboss.jms.server.endpoint.serversessionendpo...@6d47a5f
  |         at 
org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.ja

After the timeout, the server dumps:

anonymous wrote : 
  | 13:22:51,975 ERROR [SocketClientInvoker] Got marshalling exception, exiting
  | java.io.IOException: No route to host
  |         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)
  |         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:971)
  |         at 
org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:606)
  |         at 
org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:422)
  |         at 
org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:133)
  |         at org.jboss.remoting.Client.invoke(Client.java:1645)
  |         at org.jboss.remoting.Client.invoke(Client.java:559)
  | 

and other clients start getting ticks.

This will not come back until the write socket times out. I believe that is a  
tcp keep alive issue and on Linux it defaults to minutes. 

Is there any configuration that we can use? We do have:

 <attribute name="callbackTimeout">10000</attribute>set in our 
remoting-bisocket-service.xml file.

We are dead in the water in our migration effort from ActiveMQ to JBOSS 
messaging because of this.  Thank you for any help.



View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4217947#4217947

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4217947
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to