IBM WebSphere Adapter for JDBC, version 6.1.0.3_IF01 notes

This document contains the following sections:
Fixes
New and modified connector properties
Upgrade notes

Fixes
#Adapter versionCRAPARTitleDetails
16.1.0.3_IF0176176JR31305 JDBC adapter throws RecordNotFoundException during RetrieveAll operation when no records are found in the database.
Symptom: During retrieveAll operation, adapter throws RecordNotFoundException when no records are returned from the database. As part of this fix, a new property called ErrorOnEmptyResultset has been added on the Managed Connection Factory. The default value for this property is true and will result in current behaviour, i.e. if no rows are returned for the RetrieveAll operation, a RecordNotFoundException is thrown. If you want to override the behavior for retrieveAll operation then you can change the value for this property through admin console and set it to false after deploying the application. In this case, adapter will not throw an exception and return an empty container when no records are found after processing the retrieveAll operation. This property is not configurable through EMD in this fix, and has to be changed in the Admin Console.
Resolution: Fixed. See details above on how to use the new property - ErrorOnEmptyResultset.
26.1.0.3_IF0176301JR31631 JDBC Adatper failed to validate stored procedures on DB2 iSeries during external service discovery.
Symptom: While using external service discovery,JDBC Adapter failed to validate stored procedures on DB2 iSeries.
Resolution: Fixed.JDBC Adapter succeeds in validating stored procedures on DB2 iSeries during external service discovery.
36.1.0.393182 English text over the Progress Monitor Indicator.
Symptom: The progress monitor in the first screen of the EMD has har coded english text.
Resolution: Modify some source files and also message files to solve this issue.
46.1.0.393155 TypeFactory is using ext classloader instead of application classloader in WAS.
Symptom: forName method could not find the record and throws bo not found exception.
Resolution: Change the source code tto make sure correct classloader is used.
56.1.0.393148Improve the adapter exception case.
Symptom: crash or hang situation appears since Base Class does not handle the exception.
Resolution: Fix it by catching the exception thrown by logging and ignore it for making sure the work completion status could be notified to workcontroller.
66.1.0.393143JR30855 Infinite inbound loop when assuredOnceDelivery is false.
Symptom: Infinite inbound loop when assuredOnceDelivery is false.
Resolution: Change the source code to support the case when assuredOnceDelivery is false.
76.1.0.393077 "Method is deprecated messages" in the log/console.
Symptom: A lot of warning messages appears in the log/console when the websphere adapter is running.
Resolution: Remove this message from system out.
86.1.0.375915Null name space support in base class.
Symptom: Base class doesn't support null namespace using 6.1 adapter.
Resolution: One is adding the Head Alias "xsd:" to all vocabulary scoped in w3c namespace. The other is that cut off those alias with declaration of null namespace from schema.
96.1.0.376053JR30832 JDBC Adapter failed to retrieveAll a view with a child business object that has one child business object itself.
Symptom: RetrieveAll a View with a child business object that has one child business object itself.There is no error message any more, but the result of the query does not match the data in the database. Only the first level resultset is correct. All the other resultsets are missing the second level child business object .Only the first level resultset includes the business object. The other resultsets does not show this business object.
Resolution: Fixed. JDBC Adapter succeeds in executing retrieveAll a view with a child business object that has one child business object itself.
106.1.0.393103JR30968 JDBC Adatper failed to use DB2 XA Type 4 DataSource connection.
Symptom: There is an application with JDBC Adapter outbound which uses DB2 XA Type 4 DataSource connection. But while deploying the application to WPS server, it raises an error like below. com.ibm.db2.jcc.b.SqlException: Failure in loading T2 native library db2jcct2, reason: java.lang.UnsatisfiedLinkError: db2jcct2 (Not found in java.library.path).
Resolution: Fixed.JDBC Adapter succeeds in using DB2 XA Type 4 Datasource connnection.
116.1.0.393101JR30971 JDBC Adapter EMD throws a null exception while adding a stored procedure to a selected object list.
Symptom: During discovery time, the client is able to connect and see all database artifacts including tables and stored procedures. The problems start when they add a stored procedure to the selected objects list, no dialog displays showing how to configure the stored procedure, its parameters, or resultset. The stored procedure is just added to a selected objects. They get a null pointer exception when generation starts.
Resolution: Fixed.JDBC Adapter EMD can complete adding a stored procedure to a selected object list without any exception.
126.1.0.393090JR30215 JDBC Adapter returns a null exception message while polling events due to connection failure.
Symptom: When JDBC Adapter encounters an Database connection issue while polling events in inbound operation,it returns a null exception message.
Resolution: Fixed.JDBC Adapter can report detailed database exception message while polling events in inbound operation.
136.1.0.376071JR30954 EMD tool could not generate primaryKey ASI for the BO based on a table without primarykey definition.
Symptom: Working with some database such as SQL Server. When user created a table without primarykey defined on it. During discovery, EMD tool can not generate primarykey ASI for the BO, although the user has manually set the primarykey in EMD wizard.
Resolution: Fixed.JDBC Adapter can generate primaryKey ASI for the BO based on a table without primarykey definition.
146.1.0.375922JR30463 For the non-primaryKey attributes with FixedChar ASI set,there is null pointer exception occurred when JDBC Adapter does the retrieveAll operation.
Symptom: JDBC Adapter failed to deal with retrieveAll operation for the non-primaryKey attributes with FixedChar ASI set.
Resolution: Fixed.JDBC Adapter adds a support of retrieveAll operation for non-primaryKey attributes with FixedChar ASI set.
156.1.0.392815JR30663 WsException is thrown for multiple running JDBC Adapter threads.
Symptom: When multiple JDBC Adapter threads are running, a connection cleanup operation in a thread could not be completed succesfully.
Resolution: Fixed.JDBC Adapter completes connection cleanup operation in a thread succesfully.
166.1.0.292333 Add support for dynamic returned resultset from stored procedure.
Symptom: When the returned resultset number or order is not the same with EMD generated , JDBC adapter will lose some data or miss order some data of the returned resultset from stored procedure.
Resolution: JDBC adapter provide a choice for customer to select which BO mode to handler returned resultset. During EMD process , JDBC adapter provide a check box for customer to enable ResultSetBO mode or not. If user select ResultSetBO mode , JDBC adapter will not need user to input dummy value and run the stored procedure with dummy value , but replace with automated generate a set of BOs named ResultSetBO to handle returned resultset , without consideration with the resultset structure or order.(There are 2 BOs will auto generated , cursorBO and rowBO). During runtime , JDBC adapter will return the data from resultset into cursorBO and rowBO. This will solve the issue that JDBC adapter do not support dynamic returned resutlsets .
176.1.0.275867JR30398 NullPointerExceptin is thrown for parallel operation calls
Symptom: JDBC adapter failed to support parallel running operations .
Resolution: Fixed. Now users can call jdbc adapter in parallel operations
186.1.0.275729JR30021 Add property performTrimOnObjectKeyValue to JDBC inbound ActivationSpec.
Symptom: JDBC adapter always performs trimming on object key value even users don't hope so.
Resolution: Fixed. Now users can configure property performTrimOnObjectKeyValue to turn on/off the trimming of object key
196.1.0.275639JR29817 JDBC Adapter truncates precision of Timestamps upon retrival from the Database.
Symptom: When the JDBC adpater retrives a Timestamp from the database it and creates a Data object it looses the original presission of the Timestamp. The timestamps string from database has the following format: yyyy-mm-dd hh:mm:ss.fffffffff. The string format used to create the Date object is of format yyyy-mm-dd:hh:mm:ss.
Resolution: Fixed. Adapter now can handle type of Timestamp parameter with the same value input from Database.
206.1.0.275642JR29816 JDBC Adapter throws a Null Pointer exception when a SQL-TYPE *LOB field is Null.
Symptom: The JDBC adapter does not have adequate null value protection when retriving a SQL-TYPE *LOB field from the Database. This can cause a resource exception to be thrown when the *LOB is null. The following error message will occur: com.ibm.websphere.sca.ServiceRuntimeException: ResourceExceptionthrown in J2CMethodBindingImpl.invoke() javax.resource.ResourceException: javax.resource.ResourceException: java.lang.NullPointerException
Resolution: Fixed. Adapter now can handle SQL-TYPE *LOB parameters with null value input from Database.
216.1.0.275640JR29815 JDBC Adapter throws invalid parameter exception when query BO field is SQL-TYPE *LOB.
Symptom: The JDBC adapter fails to create the BO based on the ResultSet returned for a query BO with SQL-TYPE *LOB. The following error message is returned from the database: javax.resource.ResourceException: [ibm][db2][jcc][10143][10845] Invalid parameter 1: Parameter is not set nor registered.,errorcode: -99999
Resolution: Fixed. Adapter now can handle SQL-TYPE *LOB parameter in query BO fields.
226.1.0.275697JR29965 JDBC Adapter commit failed for Type CHAR BIT.
Symptom: The JDBC adapter fails to create the BO based on the ResultSet returned for a query BO with ByteArray type ASI. The following error message is returned from the database: javax.resource.ResourceException: com.ibm.db2.jcc.b.SqlException: [ibm][db2][jcc][10145][10897] Invalid parameter 3: Parameter index is out of range.
Resolution: Fixed. Adapter now can handle type of ByteArray parameter with the same value input from Database.
236.1.0.275560JR29818 Adapter throws StringIndexOutofBoundException when used to discover COBOL stored procedures having parameters without any names.
Symptom: The JDBC adapter External Service Discovery Wizard does not display the parameters for Cobol Stored procedures having parameters with no names. During the "Configuration Properties for 'sp_name'" step, the parameters are not displayed so user cannot enter sample values and hence the validation of stored procedure fails. If the user proceeds with the ESD they encounter a StringIndexOutOfBounds exception. The adapter is expecting valid parameter names to be returned from the metadata call to the database. In DB2, SQL stored procedures are required to define parameter names when they are added into the database. Parameter names are optional in DB2 for stored procedures written in various other languages including Cobol. The issue arises when the target stored procedure does not have a parameter name specified in their DDL.
Resolution: Fixed. In the ESD, adapter now displays dummy names for the parameters which don't have name so that user can provide sample values for the parameters and validate the stored procedure before proceeding with ESD.
246.1.0.275536JR29677 Empty wrapper business object is generated for no primary key table.
Symptom: For no primary key table, empty wrapper business object is generated even user selects some primary keys in external service discovery.
Resolution: Fixed. External service discovery can generate the wrapper business object for no primary key table.
256.1.0.275532JR29641 Adapter failed to handle array type input parameter in StoredProcedure type Business Object.
Symptom: If user put several different values in the array type input parameter, all the values in the array are replaced by the last one.
Resolution: Fixed. Adapter now can handle array type input parameter
266.1.0.275548JR29757 Adapter throws DataBindingException while processing stored procedures with no parameters.
Symptom: The adapter throws DataBindingException - "Failed to initialize curosr" when processing stored procedure with no parameters. This exeption may also be thrown when the generated business object does not contain any attributes.
Resolution: Fixed. Adapter now correctly processes stored procedures with no parameters.
276.1.0.275538JR29679 Database vendor property on "Service generation and deployment configuration" screen has wrong value.
Symptom: The adapter Enterprise service discovery does not retain the database vendor name selected by user on the "Connection information" screen. So the database vendor property value on the "Service generation and deployment configuration" screen is not always correct.
Resolution: Fixed. Adapter now correctly sets the value for database vendor property.
286.1.0.275537JR29680 NullPointerException when handling BLOB data.
Symptom: The adapter throws NullPointerException at runtime while processing resultset containing BLOB column returned from stored procedure execution when the data for BLOB column is null.
Resolution: Fixed. Adapter now correctly processes BLOB datatypes.
296.1.0.275539JR29681 The adapter fails to execute stored procedure with parameters of type decimal.
Symptom: During External service discovery, when user selects a COBOL stored procedure having parameter of type decimal, then on the configuration properties screen, adapter incorrectly sets the datatype for that parameter as String. So the validation of the stored procedure fails and the artifacts may not be generated correctly on completion of discovery wizard.
Resolution: Fixed. Adapter now correctly processes decimal datatypes.
306.1.0.296402JR29391 The adapter does not discover stored procedure schemas during external service discovery when connected to DB2 on z/OS.
Symptom: When you run the external service discovery wizard to connect to DB2 on z/OS and click Run Query on Object Selection and Discovery screen, adapter may not display the complete list of schemas. Adapter invokes getSchemas() api on the JDBC driver to get the list of schemas but for DB2 on z/OS, getSchemas() api does not return procedure schemas. In order to retrieve procedure schemas, you need to click Edit Query button and then check the "Discover stored procedures pertaining to stored procedure schemas" property. Then click Run Query to see the complete list of schemas.
Resolution: Fixed. Adapter now displays the complete list of schemas.
316.1.0.296397JR29386 The adapter generates ClassCastException at runtime while processing complex datatypes returned from stored procedure execution
Symptom: While processing Oracle stored procedures which return complex datatypes like STRUCT and VARRAY, adapter generates ClassCastException. This exeption is generated when adapter is configured to use datasource JNDI property set on the managed connection factory instance.
Resolution: Fixed. Adapter now correctly processes stored procedures which return complex datatypes even when adapter is configured to use datasource JNDI property.
326.1.0.195701JR28449 The adapter fails to execute stored procedures which return resultsets containing unnamed columns.
Symptom: While processing stored procedures which return resultsets, adapter expects queries for the resultset to contain names for all the columns in the query. When the stored procedure contains queries that do not have column names - for example, SELECT COUNT(*) FROM CUSTOMER - adapter would fail to process these resultsets, and generate NullPointerException.
Resolution: Fixed. Some databases such as Oracle return dummy names for the unnamed columns in the resultset query. In such case, adapter will use the column name returned by the database while generating business objects. When the databases do not return a dummy name, the adapter assigns dummy names like DCOL1, DCOL2, and so on, which is used in generation of the stored procedure business object.
336.1.0.196203JR29104 JDBC adapter would fail the execution of SPs on some instances of MSSQL 2005
Symptom: When queried from the adapter, some instances of MSSQL2005 would not return a RETURN_VALUE parameter with stored procedures metadata.
Resolution: Fixed. The query from the adapter for metadata has been modified in order that stored procedures on any of the databases return all parameters.
346.1.0.196054/96163JR29067 JDBC adapter throws invalid data conversion error while executing a stored procedure which returns a resultset
Symptom: When JDBC adapter is used to execute a stored procedure which returns a resultset containing columns of type int or Date, then you could see NumberFormatException thrown by the adapter. Also you could see SQLException with the message invalid data conversion: Wrong result column type for requested conversion.
Resolution: Fixed. Adapter now correctly processes stored procedures returning resultsets which contain columns with different data types.
356.1.0.196166 JDBC adapter throws invalid column index while using stored procedure for custom event processing.
Symptom: During inbound processing, when JDBC adapter is configured to use stored procedure for custom event processing then you may see SQLException with a message "Invalid column index" being thrown from the adapter.
Resolution: Fixed. Adapter now correctly processes events when configured to use stored procedure for custom event processing. For Oracle database, the first parameter of the stored procedure should be an output parameter of type resultset containing the event information and the second parameter should be an input parameter of type integer. At runtime, adapter will set the poll quantity value on this parameter.
366.1.0.196179 JDBC adapter throws NullPointerException while processing a stored procedure associated with a business object
Symptom: During inbound processing, when JDBC adapter is configured to use associated stored procedures with business objects, then while processing the stored procedures, adapter throws NullPointerException.
Resolution: Fixed. Adapter now correctly processes associated stored procedures during inbound processing.
376.1.0.188947JR26628 The JDBC adapter retrieves incorrect data for child objects when a parent business object contains two single cardinality children with foreign keys referring to the same attribute.
Symptom: When a business object contains two child objects of the same type representing foreign keys to the same table, the adapter retrieves two instances of the last child object, rather than one of each.
Resolution: Fixed. The adapter correctly retrieves the data for single cardinality children.
386.1.0.196205JR29126 Retrieve operation on the wrapper business object does not return child objects .
Symptom: Retrieve operation on wrapper business object does not recursively retrieves data for child business objects. .
Resolution: The adapter correctly retrieves the data for single cardinality children.


This table lists new and modified connector properties
#VersionAdded or ModifiedPropertyLocation
There is no new connector property introduced/modified for this version of interim fix.


To upgrade to the interim fix version 6.1.0.3_IF01, do the following.
1. Ensure that you have followed the "Installation Instructions" section in the download link before proceeding.
2. If you need to use the Fix Pack for EMD, delete the connector project in WebSphere Integration Developer, import the new RAR file, and apply the enterprise information system (EIS) specific dependency files.
   a. Open the Java build path for the SCA module and remove the Connector project that is selected on Projects tab.
   b. Open the dependency editor and remove the connector project.
   c. Delete the connector project from the workspace.
   d. Import the new RAR file. Add any dependency files from EIS specific application-specific information as needed.
   e. Open the Java build path for the SCA module and select the Connector project that is selected on the Projects tab.
   f. Open the dependency editor and add the connector project if it is not already present and select Deploy with Module.
3. If you need to update deployed applications on WebSphere Process Server, do the following:
   a. Select Update for the corresponding application on the WebSphere Process Server administrative console.
   b. Select Single Module with a relative path as name of the RAR file - CWYBC_JDBC.rar.
   c. Click Browse on the local file system to select the updated RAR file that has the changes.
   d. Select the default values in the remaining steps and click Finish. This will ensure that existing configurations, for example, are not changed and that only JAR files will be updated.


Dec 08th, 2008 6:00 PM
(C) 2008 IBM Corporation. Proprietary and Confidential. All Rights Reserved.