DB2 - Problem description
Problem IC61413 | Status: Closed |
DOCUMENTATION OF CHANGES IN IBM DATA SERVER DRIVER FOR JDBC AND SQLJ VERSION 3.57.110/4.7.112 FOR DB2 LUW V9.5 FIXPACK 5 | |
product: | |
DB2 FOR LUW / DB2FORLUW / 950 - DB2 | |
Problem description: | |
============================================================ Documentation of changes in IBM Data Server Driver for JDBC and SQLJ version jcc 3.57.110/4.7.112 for DB2 LUW V9.5 Fixpack 5. The previous version was 3.53.95/4.3.111 for DB2 LUW V9.5 Fixpack 4. ____________________________________________________________ All Connectivity Types: During dynamic execution of a SQLJ application, the line feed, carriage return, and space characters are being incorrectly removed from the SQL statement. This may cause problems if any embedded SQL string contains formatting that needs to be preserved. (109182) ____________________________________________________________ T4 Connectivity: A disconnect exception is thrown when setting multiple Blobs via setObject() against Callable statements. (109976) ____________________________________________________________ All Connectivity Types: A -805 SQLException is thrown when both currentPackagePath and currentFunctionPath DataSource properties are set. (122488) ____________________________________________________________ All Connectivity Types: Setting the optimistic locking value to com.ibm.db2.jcc.DB2Statement.RETURN_OPTLOCK_COLUMN_ALWAYS or to com.ibm.db2.jcc.DB2Statement. RETURN_OPTLOCK_COLUMN_NO_FALSE_NEGATIVES are always ignored for prepared statements. (123487) ____________________________________________________________ All Connectivity Types: Previously, the driver treats VARCHAR and Clob as incompatible data types for in-out parameters. For an in-out parameter, if it registers the out parameter as Clob, and uses setString for input, the driver throws an SQLException with message "The jdbcType 12 does not match between the set method and the registerOutParameter method.". Starting from 3.57/4.7, the driver will make VARCHAR and Clob compatible input output types. (109965) ____________________________________________________________ All Connectivity Types: If QueryTimeOut is set and an exception with -4499 occurs, Statement.cancel() may cause a NullPointerException. (118002) ____________________________________________________________ All Connectivity Types: If the target server is DB2 LUW and client reroute occurs, the current schema may not be set on the alternative server, causing a SQLException with error code -204. (119922) ____________________________________________________________ All Connectivity Types: When calling a stored procedure, if the output parameter is not set and CallableStatement.getXXX() is called, the driver throws an exception with message "Invalid operation: wasNull() called with no data retrieved." This message is not clear to the user. It has been changed to "No data retrieved for OUT parameter". (121668) ____________________________________________________________ All Connectivity Types: If the target server is DB2 LUW and the DataSource property "retrieveMessagesFromServerOnGetMessage" sets to true, SQLException.getMessage() may return garbage characters if locales are Arabic locales ar-ae and ar_de. (122005) ____________________________________________________________ All Connectivity Types: When Statement.cancel() gets called (this may be called explicitly or get triggered by Statement.setQueryTimeou()t), if something is wrong with the DB2 server and a DisconnectException occurs, a NullPointerException may be issued from java.util.LinkedList$ListItr.remove(). This is because both the cancel thread and main thread use the same LinkedList and Iterator for the Exception path. In a race condition, one thread may have already removed the element from the LinkedList when the other thread tries to remove, causing the NPE. (128074) ____________________________________________________________ All Connectivity Types: The autocommit may not be flown in the following case: autocommit is true, and the driver has early close of the last resultset associated with the statement. (128476) ____________________________________________________________ All Connectivity Types: If an application first connects to DB2 LUW and calls DB2Connection.getJccSpecialRegisterProperties(), then the same thread connects to DB2 zOS and calls the same method, the driver will throw a SQLException with error code -104. (128970) ____________________________________________________________ SQLJ: All Connectivity Types: When bindOption ACTION ADD is specified to the SQLJ Binder it does not work as documented. ACTION ADD means the package should be bound if it does not exist. Instead SQLJ Binder performs the action as if ACTION REPLACE is specified. (118559) ____________________________________________________________ SQLJ: All Connectivity Types: An out-of-memory error occurs from the SQLJ Runtime when running a customized SQLJ application. Under some conditions, an SQL statement is not being closed when it should have been. (125745) ____________________________________________________________ Type-2 LUW Connectivity: When running inside a stored procedure, the JCC type 2 LUW driver does not return column name information if the running Java stored procedure returns an empty ResultSet. (123788) ____________________________________________________________ Type-2 LUW Connectivity: A memory leak occurs with the JCC type 2 LUW driver running Java stored procedures on the server side. (124906) ____________________________________________________________ Type-4 XA Connectivity: A XAException with SQLCODE4223 (-4223) along with a SQLCODE4474 (-4474) with the following message "Cannot change current package path when pre-existing package sets are in use on the connection." might be reported if the "currentPackagePath" property is set by the DB2Connection.reconfigureDB2Connection() method. (124318) ____________________________________________________________ All Connectivity Types: JCC driver fails to cross convert numeric types with leading spaces for input string data. For example, PreparedStatement.setString(4, " 00006.35") contains a data string with a leading space, resulting in an SQLException (-99999) (SQLCODE99999) "Invalid data conversion". (117915) ____________________________________________________________ All Connectivity Types: JCC driver checks for a license even though the application is trying to connect to a server via a DB2 gateway. The driver does not perform this check any more. (121546) ____________________________________________________________ Type-4 XA Connectivity: In a multi-threaded and heavy load XA environment, when transaction manager does XA(start) and XA(end) using one XAResource object, and XA(prepare) and XA(commit or rollback) using a different XAResource object, the driver may throw XAER_RMFAIL, XAER_DUP, or XAER_PROTO error. This error will not occur when transaction manager uses the same XAResource object for all XA operations per transaction. (109568) ____________________________________________________________ Type-4 XA Connectivity: If an application is trying to open a XA connection and the DB2 server does not support XA, the driver should throw an exception immediately instead of letting the application continue after connection. (116453) ____________________________________________________________ Type-4 XA Connectivity: In a Sysplex environment, a XAException with SQLCODE4203 (-4203) is reported while resolving an indoubt transaction that can be on any of the data sharing members of the Sysplex group. (122265) ____________________________________________________________ Type-4 XA Connectivity: Under Sysplex WLB environment, if an application or WebSphere is trying to commit an indoubt transaction from a specific member that is down, the driver might throw a XAER_RMFAIL XAException instead of a XA_RETRY XAException. This will prevent the application or WebSphere to retry the commit action. The driver will now throw XAER_RETRY instead of XAER_RMFAIL to indicate it need retry the operation. (122451) ____________________________________________________________ Type-4 XA Connectivity: A NullPointerException will be thrown if XAResource.forget() is called twice with the same XID. (123668) ____________________________________________________________ All Connectivity Types: A deadlock could occur if an application uses DataSource and DriverManager for opening connections at the same time. This could result in a Java thread hang in the JVM. (125296) ____________________________________________________________ Type-4 XA Connectivity: A NullPointerException might occur on DB2XADataSource.getDB2TrustedXAConnection() when the "enableEndToEndMonitoringFeature" property is set to true. (126245) ____________________________________________________________ All Connectivity: JCC driver code has been enhanced such that the driver will automatically retry execution upon receiving SQLCODE30002 (-30002) on java.sql.PreparedStatement's and java.sql.Statement's (116040) (120860) ____________________________________________________________ All Connectivity: Commit is not flown when ResultSet.next() returns false and autoCommit is turned on and if property "queryCloseImplicit" is set to QUERY_CLOSE_IMPLICIT_YES(1). This problem has been corrected. (122175) ____________________________________________________________ Type-2 LUW Connectivity: An ArrayIndexOutOfBoundsException is encountered while calling a Java stored procedure that calls another stored procedure which returns Blobs and ResultSets containing Blobs. (123970) ____________________________________________________________ Type-2 LUW Connectivity: ResultSetMetaData.isAutoIncrement() may return an incorrect result if the Java stored procedure is invoked from CLP. This problem has been corrected. (104662) ____________________________________________________________ All Connectivity Types: When connecting against DB2 for z/OS, locator based CLOBs encoded with the 943c codepage will cause unpredictable behavior. Against v9.1, when progressive streaming is enabled, attempts to access a cp943c encoded Clob may not work property. This issue has been resolved. (117719) ____________________________________________________________ Type-4 and Type-2 LUW Connectivity: Executing a PreparedStatement which has XML parameters is noticeably slower in DB2 for Linux, Unix, and Windows v9.5 driver than the v9.1 driver. This slowdown is even more evident when the statement has multiple XML parameters. (128593) ____________________________________________________________ Type-4 Connectivity: While targeting DB2 for LUW server, and driver property enableClientAffinitiesList is set to DB2BaseDataSource.YES(1), upon a communication failure, driver may continuously try to reconnect to the primary server. (129995) ____________________________________________________________ Type-2 LUW Connectivity: When running inside a stored procedure, the JCC type 2 LUW driver does not return column name information if the running Java stored procedure returns an empty ResultSet. (123788) ____________________________________________________________ All Connectivities: A "java.lang.ClassCastException" exception is encountered when PreparedStatement.executeBatch () is called against DB2 for z/OS to execute an INSERT FROM SELECT statement. (130216) ____________________________________________________________ All Connectivities: An "Unrecognized JDBC type: 1111" exception with SQLCODE4228 (-4228) is encountered when PreparedStatement.setNull () is called with java.sql.Types.OTHER against a target column that is defined as DECFLOAT. (130681) ____________________________________________________________ All Connectivities: Previously, if the DataSource property sendDataAsIs is set to true, the driver allows getting ParameterMetaData using PreparedStatement.getParameterMetaData(). This is no longer allowed, and an exception will be throw with message "Cannot get parameterMetaData information when property sendDataAsIs is true". (129326) ____________________________________________________________ Type-2 LUW Connectivity: A NullPointerException may be thrown during execution when the DB2 server authentication mode is set to DATA_ENCRYPT and the driver securityMechanism property is set to ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY. (131147) ____________________________________________________________ All connectivity types: When using the DriverManager to obtain a connection, the client will be unable to change the value of the useJDBC4ColumnNameAndLabelSemantics property from DB2BaseDataSource.NOT_SET. Furthermore, when using the JDBC 3 driver, the client will be unable to change the value of the progressiveStreaming property from DB2BaseDataSource.NOT_SET These problems do not exist when using a DataSource to obtain a connection. This problem has been resolved. (127128) ____________________________________________________________ Type-4 Connectivity: Automatic client reroute (ACR) to other members of a datasharing group may not occur when Sysplex workload balancing (WLB) is enabled, resulting in SQLCODE4499 (-4499) when one member goes down. (133488) | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * Users of the IBM Data Server Driver for JDBC and SQLJ * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to V9.5 Fixpack 5 * **************************************************************** | |
Local Fix: | |
n/a | |
available fix packs: | |
DB2 Version 9.5 Fix Pack 5 for Linux, UNIX, and Windows | |
Solution | |
Problems fixed in DB2 LUW V9.5 Fixpack 5 | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 08.06.2009 25.12.2009 25.12.2009 |
Problem solved at the following versions (IBM BugInfos) | |
9.5.FP5 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.5.0.5 |