Technical Blog Post
75 ways to demystify DB2: #49 Understanding the DB2 JDBC 4499 error message
The 4499 error message for the IBM Data Server for JDBC and SQLJ (JCC) driver is returned in 3 cases and is always a fatal error (the error cannot be recovered from without re-trying the failing operation).
The most common case occurs when there has been a network or TCP/IP error. In this case the message description of the TCP/IP error will return. For example if the issue was a connection reset, the message would be “Connection reset by peer”. If the TCP/IP listener was not available on the target system the message would be “Connection refused”. Normally the error text returned with the error will correspond to an OS errno or a Winsock error and a search of the internet for the text will provide more information about the error. Common TCP/IP or Winsock error names and their corresponding errno and Winsock error numbers are documented in the description of the SQL30081 error message from the DB2 10.5 Knowledge Center located at the following URL.
Another common case occurs when the server is too busy. In this case the error will return the text of the error message returned from the server. The error commonly returned by DB2 LUW is SQL1224N with the message text as follows.
"The database manager is not able to accept new requests, has terminated all requests in progress, or has terminated the specified request because of an error or a forced interrupt"
The information center for DB2 LUW documents the error message text and suggested actions at the following URL.
The db2 command db2 “? SQL1224” will also return a description of the error and suggested actions. The db2 “? error message” command can also be used to return information on other errors and other error families such as CLI error messages. To look up a CLI error message prefix the error message number with CLI. For example in the case of a CLI 128 error the command would be "db2 ? CLI0128". Older( out of support) versions of DB2 LUW required that the error number be at least 4 digits and in these cases it was necessary to pad the number with zeroes. For example the command for a SQL 204 error would be db2 ? SQL0204.
A less common case of a 4499 message occurs when either the information provided by the server is not understood or the information provided by the driver has not been understood by the server. In this case the error message often contains information on the DRDA protocol and identifies the object that was not correct or expected. This type of error is internal to DB2 LUW and it will be necessary to contact DB2 support to investigate further. It may be possible to identify the failing DRDA object by reviewing the publicly available DRDA documentation, but DB2 LUW support will be required to investigate the issue.