Java Proxy based web application deployed to WebSphere targeting Gen Transaction Enabler server fails intermittently. The SystemOut.log contains message:
com.ca.gen85.csu.exception.CSUException: [Function: TCPIPConnection::readData]Connection unexpectantly closed by server
The problem can be worked around by either restarting the WebSphere JVM instance or by restarting the Gen Transaction Enabler.
The message "Connection unexpectantly closed by server" is coming from the Gen user exit TCPIPDynamicCoopFlowExit.java which by default makes 2 attempts to establish the connection to the server. Sometimes this message can indicate that more attempts need to be configured in the exit. However, in this case the Transaction Enabler aefuf (funnel) log file showed it was reaching its 245 client connection limit i.e.
... ==>MAX USER CONNECTIONS 245 EXCEEDED, REJECTING CLIENT
...
... ==>Error:fdAlloc:No fd slots available!
... ==>aefuf: USER: UF fd=-1, rejected, MAX sockets
Therefore, retry attempts would continue to be unsuccessful until restarting either the JVM instance or Transaction Enabler, to clear all the client-server socket connections.
There are 2 options to resolve the problem, do one:
Option #2 would probably be easiest to implement in a AppServer environment like WebSphere as long as any client thread initialization at JVM start-up also does not exceed the 245 limit.