JBoss Community

Re: Sockets left in CLOSE_WAIT on server for JMS connections

created by Joseph S in JBoss Remoting - View the full discussion

Hi Ron,

 

I am observing similar issue in my application. We are using Jboss 4.2.0.GA, Jboss Remoting 2.5.3.SP1

 

We have a firewall between our server and client and we followed the forum,

http://blog.akquinet.de/2009/09/30/using-jboss-messaging-in-a-firewalled-environment-the-toll-road/

to set our parameters like below,

 

               <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>

               <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>

               <attribute name="dataType" isParam="true">jms</attribute>

               <attribute name="socket.check_connection" isParam="true">true</attribute>              

               <attribute name="serverBindAddress">${jboss.bind.address}</attribute>

               <attribute name="serverBindPort">4457</attribute>

               <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>

               <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>

               <attribute name="numberOfCallRetries" isParam="true">5</attribute>

               <attribute name="pingFrequency" isParam="true">5000</attribute>

               <attribute name="pingWindowFactor" isParam="true">2</attribute>

               <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>              

               <attribute name="stopLeaseOnFailure" isParam="true">true</attribute>

               <attribute name="clientLeasePeriod" isParam="true">10000</attribute>

               <attribute name="validatorPingPeriod" isParam="true">10000</attribute>

               <attribute name="validatorPingTimeout" isParam="true">5000</attribute>

               <attribute name="failureDisconnectTimeout" isParam="true">0</attribute>

               <attribute name="callbackErrorsAllowed">1</attribute>

               <attribute name="registerCallbackListener">false</attribute>

               <attribute name="useClientConnectionIdentity" isParam="true">true</attribute>

              <attribute name="timeout" isParam="true">1800000</attribute>

               <attribute name="numberOfRetries" isParam="true">10</attribute>

               <attribute name="JBM_clientMaxPoolSize" isParam="true">200</attribute>

               <attribute name="callbackTimeout">10000</attribute>

               <attribute name="secondaryBindPort">4481</attribute>

 

 

With this implementation, we have mulitple Connections in CLOSE_WAIT state most of them getting cleared and some left behind.

After several days, we loose the JMS communication. We need to restart the application again to get rid off.

 

Also we observed the below exception multiple times when the issue happens,

Exception:

2011-03-28 11:50:10,271 TRACE [org.jboss.remoting.transport.socket.ServerThread(638)](WorkerThread#4[10.255.254.134:42933]) WorkerThread#4[10.255.254.134:42933] EOFException received. This is likely due to client finishing communication.

java.io.EOFException

        at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:740)

        at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:586)

        at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234)

 

Kindly share some light to resolve this.

 

Regards,

Joseph.

Reply to this message by going to Community

Start a new discussion in JBoss Remoting at Community