APAR status
Closed as program error.
Error description
When we create a DB2 database connection, we include the retrieveMessagesFromServerOnGetMessage property set to true. (See psdi.util.DBConnect) There's no indication why this option is turned on. I haven't found a good description of what this option is for. In both of the support cases, the client's receive a null pointer exception that originates from the DB2 code. ERROR: BMXAA7025E ? Script failed while running.; null at psdi.dbmanage.ScriptRun(ScriptRun.java: 255) at psdi.dbmanage.Utility(Utility.java: 288) at psdi.tools.ScriptExecutionInfo(ScriptExecutionInfo.java: 343) at psdi.tools.ScriptExecutionInfo(ScriptExecutionInfo.java: 332) at psdi.tools.ScriptExecutionInfo(ScriptExecutionInfo.java: 289) at psdi.tools.RunScripts(RunScripts.java: 156) at psdi.tools.UpdateDB(UpdateDB.java: 2853) at psdi.tools.UpdateDB(UpdateDB.java: 4403) at psdi.tools.UpdateDB(UpdateDB.java: 5217) at psdi.tools.UpdateDB(UpdateDB.java: 274) at psdi.tools.UpdateDB(UpdateDB.java: 3208) *Caused by: null at com.ibm.db2.jcc.am.gd(gd.java: 752) at com.ibm.db2.jcc.am.gd(gd.java: 66) at com.ibm.db2.jcc.am.gd(gd.java: 135)* at com.ibm.db2.jcc.am.Agent(Agent.java: 571) at com.ibm.db2.jcc.am.Agent(Agent.java: 526) at com.ibm.db2.jcc.am.Sqlca(Sqlca.java: 336) at com.ibm.db2.jcc.am .SqlExceptionContainer(SqlExceptionContainer.java: 79) at com.i bm.db2.jcc.am.SqlSyntaxErrorException(SqlSyntaxErrorException.ja va: 54) at java.lang.Throwable(Throwable.java: 203) at java.lang.Throwable(Throwable.java: 335) at java.lang.Throwable(Throwable.java: 123) at java.lang.Exception(Exception.java: 113) at java.sql.SQLException(SQLException.java: 176) at com.ibm.tivoli .maximo.dbmanage.connection.WrappedSQLException(WrappedSQLExcept ion.java: 46) at com.ibm.tivoli.maximo.dbmanage.connection.Wrap pedSQLException(WrappedSQLException.java: 41) I haven't been able to figure out why this exception is thrown. My theory is that as UpdateDB runs, it executes statements against the database. Sometimes these statement fail because it's an insert that's missing values for required columns. The code normally catches these exceptions to automatically fill in the missing values. However, in these support cases, another exception is thrown while the code is trying to examine the original exception. And if our testing is correct, exceptions may be returned on the commit after the statement executed. This causes the code fail unexpectedly. We sent code to the first client to set this option to false and it seemed to work. However I don't know what the implication of having this option off is. But I'm going to supply the 2nd client with a similar fix in a one-off to get them working. Both clients seem to be ICD, but I'm sure what this means. We need to figure out what this option is, do we need it turned on, why is this option causing a problem, and maybe do we need to check for this problem before running UpdateDB?
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * * Clients using a DB2 database, with some unknown factor. * **************************************************************** * PROBLEM DESCRIPTION: * * When UpdateDB is running upgrade scripts and encountering a * * SQL Syntax error, a null pointer exception is thrown from * * the DB2 code. (The syntax error is a valid part of the * * upgrade process.) This exception hides the actual exception * * UpdateDB needs to recover. This happens when the * * retrieveMessagesFromServerOnGetMessage flag is set when the * * SQL Connection is created. * ****************************************************************
Problem conclusion
_The fix for this APAR is contained in the following maintenance package: release\fix pack for Release 7.6.1.3 Product_
Temporary fix
Comments
APAR Information
APAR number
IJ31898
Reported component name
PRODUCT INSTALL
Reported component ID
5724R46IT
Reported release
761
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2021-03-31
Closed date
2021-07-16
Last modified date
2021-07-16
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
PRODUCT INSTALL
Fixed component ID
5724R46IT
Applicable component levels
[{"Line of Business":{"code":"LOB59","label":"Sustainability Software"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"Maximo Asset Management"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"761"}]
Document Information
Modified date:
18 July 2021