[jbossws-dev] [JBoss Web Services Development] - Keep alive doesn't doesn't work for closed TCP/IP connection

richard.opalka@jboss.com do-not-reply at jboss.com
Thu Oct 1 08:42:45 EDT 2009


My usecase:

I'm using JBossWS Netty client (via JAX-WS proxy API) with keep-alive feature enabled (this is the default).
When remote http server goes down and up again all lately used cached connections on client side will fail with the following exception:

  | java.io.IOException: Could not transmit message">javax.xml.ws.WebServiceException: java.io.IOException: Could not transmit message
  | 	at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:392)
  | 	at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:302)
  | 	at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:170)
  | 	at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)
  | 	at $Proxy13.echo(Unknown Source)
  | 	at org.jboss.test.ws.jaxws.endpoint.jse.UsecasesTestCase.invokeEndpoint1(UsecasesTestCase.java:128)
  | 	at org.jboss.test.ws.jaxws.endpoint.jse.UsecasesTestCase.testTwoPortsAndLongPaths(UsecasesTestCase.java:86)
  | Caused by: java.io.IOException: Could not transmit message
  | 	at org.jboss.ws.core.client.transport.NettyClient.invoke(NettyClient.java:194)
  | 	at org.jboss.ws.core.client.HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:150)
  | 	at org.jboss.ws.core.client.SOAPProtocolConnectionHTTP.invoke(SOAPProtocolConnectionHTTP.java:69)
  | 	at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:344)
  | 	at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:290)
  | 	... 31 more
  | Caused by: java.util.concurrent.ExecutionException: java.nio.channels.ClosedChannelException
  | 	at org.jboss.ws.core.client.transport.WSResponseHandler$FutureResult.get(WSResponseHandler.java:178)
  | 	at org.jboss.ws.core.client.transport.WSResponseHandler$FutureResult.get(WSResponseHandler.java:113)
  | 	at org.jboss.ws.core.client.transport.NettyClient.invoke(NettyClient.java:156)
  | 	... 35 more
  | Caused by: java.nio.channels.ClosedChannelException
  | 	at org.jboss.netty.channel.socket.nio.NioWorker.cleanUpWriteBuffer(NioWorker.java:624)
  | 	at org.jboss.netty.channel.socket.nio.NioWorker.write(NioWorker.java:353)
  | 	at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:124)
  | 	at org.jboss.netty.channel.Channels.write(Channels.java:889)
  | 	at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:76)
  | 	at org.jboss.netty.channel.Channels.write(Channels.java:869)
  | 	at org.jboss.netty.channel.Channels.write(Channels.java:818)
  | 	at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:236)
  | 	at org.jboss.ws.core.client.transport.NettyTransportOutputStream.close(NettyTransportOutputStream.java:142)
  | 	at org.jboss.ws.core.client.transport.NettyClient.writeRequest(NettyClient.java:240)
  | 	at org.jboss.ws.core.client.transport.NettyClient.invoke(NettyClient.java:147)
  | 	... 35 more
  | 

Our client side Netty connections cache have to implement algorithm that will detect, if cached connection is still alive (the one going to be returned to client).

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

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4258137


More information about the jbossws-dev mailing list