Part of the problem is that the error messages come in Portuguese, making the debug task a lot harder since it's almost impossible to find decent help by searching through the error messages. The other part of the problem is that this leaves me the SQL error codes, which sometimes are unclear and makes me waste time.
Here's an example of a common problem that I usually have:
com.ibm.db2.jcc.b.rg: [jcc][t4][102][10040][3.50.152] Non-atomic batch failure. The batch was submitted, but at least one exception occurredFollowing DB2 official documentation:
on an individual member of the batch.
Use getNextException() to retrieve the exceptions for specific batched elements.
com.ibm.db2.jcc.b.pm: Error for batch element #1: The current
transaction was rolled back because of error "-289".. SQLCODE=-1476,
SQLSTATE=40506, DRIVER=3.50.152
com.ibm.db2.jcc.b.SqlException: [jcc][103][10843][3.50.152]
[...] ERRORCODE=-4225, SQLSTATE=null
- SQLCODE=-1476 means that the current transaction was rolled back because of error.
- SQLSTATE=40506 means that the current transaction was rolled back because of an SQL error, which is basically the same as the SQLCODE above.
- ERRORCODE=-4225 means an error occurred when data was sent to a server or received from a server, which is totally useless.
This error means "Unable to allocate new pages in table space", and this is the real cause for such a big fuss.
One of my DB2 table spaces run out of space and all I get is a lot of fuss about a rollback that happened because of an error but the error itself is kind of hidden in the middle of the stack trace, all that is shown is a loose error code...
IBM has done it again, the cause of the error should be highlighted and perfectly visible and understood in order to know what really happened and fix the problem, but making the life easier for its users seems not to be IBM way.
./M6