A fix is available
APAR status
Closed as program error.
Error description
Various service updates to the DB2 Universal JDBC Driver release 2.11 may be provided.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All Users of the DB2 Universal JDBC Driver * **************************************************************** * PROBLEM DESCRIPTION: DB2 Universal Driver Version 2.11.67 is * * provided by this APAR. ( JCCV21167 ) * * * * This APAR is applicable to both DB2 * * Universal drivers for z/OS V7 and V8. * * ( JCCZOSDB2V7, JCCZOSDB2V8 ) * * * * This APAR delivers a service bundling * * to release 2.11 of the DB2 Universal * * JDBC Driver providing an accumulation * * of defect fixes and enhancements. * * * * Individual items are documented in the * * APAR summary section that follows. * **************************************************************** * RECOMMENDATION: * **************************************************************** JCC sub-category keywords: JCCCOMMON, JCCT2ZOS, JCCT4, JCCT4XA, JCCSQLJ The following changes are delivered in this APAR: ____________________________________________________________ All Connectivity: New global configuration property is added allowing user configurability for controlling whether the driver produces any SQLWarnings or SQLExceptions with a null SQLState. There is no driver defect in producing null and applications should be written tolerant of such. However, the legacy JDBC driver used "FFFFF" instead of null for errors where there was no formal SQLState defined. Some legacy applications have been written assuming non-null value and have been impacted with NullPointerExceptions when migrating. This feature provides a usability enhancement to help with such migrations without impacting existing application code. The new global configurable property is: db2.jcc.defaultSQLState or db2.jcc.defaultSQLState=xxxxx If specified with no explicit assignment, the driver will choose a default (currently "FFFFF") for all cases that normally produce null for SQLState. If specified with explicit assignment, that value will be used with padding or truncation assuring 5 character length. (109828, 110099, 111749) ____________________________________________________________ All Connectivity: Memory usage issues occurred linked to large application ClassLoaders never getting garbage collected, even though the application had gone out of scope. This happened when running in a Websphere Application Server environment. There are circumstances where the driver creates Threads (e.g. via a Timer used for query timeout) that persist for the life of the driver. These were not done as PrivilegedActions and resulted in refs to appl. ClassLoaders that persisted for the life of the driver. (110658) ____________________________________________________________ All Connectivity: Scale of 0 was used when a BigDecimal was inserted to a non DECIMAL column. Scale is now retained. (110370) ____________________________________________________________ All Connectivity: NullPointerException occurred when calling Statement.setCursorName(null). (112383) ____________________________________________________________ Type2 z/OS: Diagnostic tracing improvements have been added providing better information of data coming from DB2 engine for DESCRIBE INPUT processing. This facilitates service for problems where this information may be an issues. (111444) ____________________________________________________________ Type-2 z/OS: setQueryTimeOut with a value other than 0 is not supported by type-2 z/OS connectivity. However, no error was reported and a spawning of a separate query timer thread would occur. This has now been modified to no longer spawn such a thread and throw an SQLException indicating that this is an unsupported operation. (82037) ____________________________________________________________ Type-2 z/OS: A Java stored procedure running on a subsystem with default system encoding Unicode may fail to return ResultSets. Driver provided corrupted collection id information to the stored procedure manager, having expected this data in application encoding scheme vs. default system encoding. This has now been resolved. (111614) ____________________________________________________________ Type2 z/OS: Diagnostics indicating JDBC driver internal error having leaked native statements occurred after failing a trusted connection reuse with a different auth id (i.e. switch-user). Anomalies related to attempting to access native memory that has been already freed may have occurred. This issue is resolved for the trusted reuse error path. (113739) ____________________________________________________________ Type4: An SQLException with SQLCODE4214 (-4214) is now thrown if there is an authorization failure when acquiring a Connection. Previously, an SQLException with error code -99999 was thrown under this condition. (97639) ____________________________________________________________ Type4: When using securityMechanism KERBEROS_SECURITY in WAS with user id specified explicitly, an SQLException with error message "Caught javax.security.auth.login.LoginException while using JAASLogin" occurred. (109739) ____________________________________________________________ Type4: SQLException with message indicating "Invalid argument: parameter index 1 is out of range" occurred when trying to perform a PreparedStatement setXXX() after the very first execute of the PreparedStatement had failed to actually prepare and deferPrepares=true (default). (111648) ____________________________________________________________ Type4: NullPointerException occurred when Statement cancel was attempted after an SQLCODE4499 (-4499) disconnect error. The cancel could have either been explicit Statement cancel() or implicit because of query timeout being set. (111858) ____________________________________________________________ Type4 XA: An XAException with XAER_PROTO error was thrown when calling XAResource.recover() method. This occurred if the same XAResource called prepare() before calling the recover() method. (109103) ____________________________________________________________ Type4 XA: SQLCODE911 (-911) occurred when running under XA local transaction mode, followed by SQLCODE4497 (-4497) on any subsequent SQL statement with error message indicating "Application must execute a rollback. The unit of work has already been rolled back in the database but other resource managers involved in this unit of work might not. To ensure integrity of this application, all SQL requests will be rejected until the application issues a rollback". Subsequent SQL statements now execute as they should. (111979) ____________________________________________________________ SQLJ; All Connectivity: Abend 0c4, failure to return intended ResultSets from Java stored procedures, or other anomalies occurred due to ConnectionContext close() initiated by finalization driving DB2 flows to close open cursors belonging to Iterators associated with the ConnectionContext. The abend 0c4 was type2 z/OS specific, occurred when operating in a Websphere Application Server environment, and the cursor close occurred simultaneous to external transaction management (e.g. COMMIT) activity via RRS. The z/OS Java stored procedure failed to return an intended ResultSet because the cursor was closed before the stored procedure infrastructure was able to mark it as intended for return. Such cursor close is now prevented. (113677) ____________________________________________________________ SQLJ: Profiles upgraded with the Upgrade utility failed at runtime with error noting cannot convert from byte to String if a byte was an input host variable. If this problem exists, it requires rerunning the db2sqljupgrade utility again after applying the PTF. (109555) ____________________________________________________________ SQLJ: Profiles upgraded with the Upgrade Utility (db2sqljupgrade) failed at runtime with error: Error code = -99999 'Illegal Conversion: Cannot convert from "java.lang.String". This error resulted due to missing encoding value for a VARCHAR column in the legacy profile. The Upgrade utility has been fixed to set a CCSID value of 1208 for a VARCHAR column if the encoding value is missing in the legacy profile. The db2sqljupgrade utility needs to be run again after PTF installation to correct the problem. (110502) ____________________________________________________________ SQLJ: Profiles upgraded with the Upgrade Utility (db2sqljupgrade) failed at runtime with SQLCODE305 (-305). The error is the result of incorrect information in the legacy profile on statements with an outer join (left, right, or full) or other cases which allow columns to be nullabled even though the catalog might indicate non-nullable. The legacy driver has erroneously tagged columns as non-nullable when in fact the SQL did support nullable. This erroneous setting was carried forward into the upgraded profile. This has now been fixed in the Upgrade Utility by making all columns nullable. If this problem exists, it requires rerunning the db2sqljupgrade utility again after PTF installation to correct the problem. (111169) _____________________________________________________________ SQLJ: Memory leak occurred when an SQLJ application ran under Websphere environment, used sqlj.runtime.DefaultContext, and was stopped and restarted. The DefaultContext held a strong reference to the Application ClassLoader. This has now been fixed. The Websphere Application Server (WAS) has to be restarted after applying the fix. (111172) ____________________________________________________________ SQLJ: An explicit ConnectionContext close was not closing all the resources associated with the context when the duplicate query support was enabled. (112120) ____________________________________________________________ SQLJ; Type2 z/OS: SQLCODE812 (-812) was incorrectly issued when an application was customized using the -longpkgname option and the updateRow() or deleteRow() methods were invoked on a ResultSet that was obtained using an updatable SQLJ Iterator. (110101)
Problem conclusion
The items described in the APAR Problem Summary have been resolved as noted in the summary and included in this APAR.
Temporary fix
Comments
APAR Information
APAR number
PK64228
Reported component name
DB2 ODBC/JDBC/S
Reported component ID
5740XYR02
Reported release
812
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2008-04-09
Closed date
2008-09-09
Last modified date
2008-10-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK39698 UK39699
Modules/Macros
DSNAQJBA DSNAQJBB DSNAQJB1 DSNAQJB2 DSNAQJB3 DSNAQJB4 DSNAQJB5 DSNAQJB6 DSNAQJB7 DSNAQJB8 DSNAQJB9 DSNAQJC1 DSNAQJC2 DSNAQJC3 DSNAQJC4 DSNAQJL1 DSNAQJL2 DSNAQJRM DSNAQ6L8
Fix information
Fixed component name
DB2 ODBC/JDBC/S
Fixed component ID
5740XYR02
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"812"}]
Document Information
Modified date:
03 March 2021