Stale Connection on Linux systems
We might need to set a loopback to access DB2 databases from the appserver on a Linux platform.
A Linux semaphore issue can interfere with JDBC access to the DB2 database in either of these configurations:
- Use the DB2 Universal JDBC Type 2 driver to connect to a local DB2 database
- Use the DB2 Universal JDBC Type 2 driver to access DB2 for z/OS through a DB2 Connectinstallation on the same machine as the appserver. The problem occurs only if DB2 Connect restricts local clients from running within an agent. (That is, if the DB2_IN_APP_PROCESS setting is not the default value, or if the setting is Yes. Set the value to No to fix the problem and avoid performing the following procedure.)
The issue often triggers the JVM logs to display the DB2 stale connection exception SQL1224. Because the SQL exception code can vary, however, check the DB2 trace log when you encounter a stale connection. If we see the following error data, the Linux semaphore behavior is the problem:
'71' -SQLCC_ERR_CONN_CLOSED_BY_PARTNER and SQLCODE -XXXXTo work around the problem, set the loopback for the database. For example, if the database name is WAS, host name is LHOST, and database service port number is 50000, issue the following commands from the DB2 command line window:
db2 catalog TCPIP node RHOST remote LHOST server 50000 db2 uncatalog db WAS db2 catalog db WAS as WASAlias at node loop authentication server //If we connect to WASAlias, it is connect through loopback; //If we connect to WAS, it is "normal" connect. db2 catalog db WASAlias as WAS at node RHOSTVerify the catalog entry by issuing the following commands from the DB2 command line window:
db2 connect to WAS user xxx passwd: xxx
Related
Example: Handling data access exception - stale connection