We have a web application that uses the Java wrapper to make RPC calls our backend.
The application includes a simple(Stack based)Connection Pool implementation where Broker objects are kept for re-use.
Our environment uses autologon so we never implicitly logoff() allowing the Broker timeout to control the number of live connections.
Unfortunately, we are getting intermittent errors Broker Error 0013 0313: Send/receive failed for ETBxxx:xxxx (java.net.SocketException: Connection reset). About 1 or 2 per day.
We are unable to replicate this in our test environment, even under varying loads so any suggestions on how we can correct this would be appreciated.
Basically this means that someone on the other side has closed the socket.
Two questions:
Do you have some sort of proxy, gateway, router or other TCP/IP software/hardware located between your web server and your Broker ? If yes you should check if this piece is automatically closing socket connections after a certain period of non-activity.
where is your Broker running and which version are you using ?
You will see this error also if the Broker or the the TCP/IP stack has been restarted. The other possible reason is that the Broker closed the socket due to some error condition. This depends on the version/platform of the Broker. It is a good idea to check the Broker log files for error messages.
we have at least 1, and probably 2 distinct firewalls that need to be negotiated. I will look into that in more detail, but since we are not getting this error in our dev and test environment which go through the same firewalls I did not look into it before.
Broker is running on z/OS, version 7.2.1. We have RPC version 5.1.1, Natural 4.1
Java calls
It may be of interest that we are also getting this error on some of our other applications that use straight ACI as well as XMLRPC.
I have also learned that these errors get preceded by Broker Error 0002 0002: User does not exist.
If I understand correctly, then this means that Broker timeout CLIENT-NONACT has occurred. Could there be a relationship between the 2 errors?