IBM WebSphere Adapter for JDBC, version 7.0.0.4 IF08 notes

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


This table lists the fixes in JDBC Adapter 7.0.0.4_IF08.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this interim fix.
Fixes
#CRAPARTitleDetails
1JR43851 Events getting deleted even though its status is marked as new when there are transaction related exceptions during recovery.
Symptom: If there are any transaction related exceptions during recovery, transaction Id cannot be set; delete event method will be called, which operates without checking the event status
Resolution: Delete event is modified to check the event status as processed before deleting.



This table lists the fixes in Adater Foundation Classes for JDBC Adapter 7.0.0.4_IF07.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this interim fix.
Fixes
#CRAPARTitleDetails
1JR43563 Processed Events not deleted after adapter restart
Symptom: Events with status 1 are not getting deleted after restart
Resolution: Include a check for status while getting events with status 1



This table lists the fixes in Adater Foundation Classes for JDBC Adapter 7.0.0.4_IF06.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this interim fix.
Fixes
#CRAPARTitleDetails
16821JR41730Create EventStore to ActivationSpec mapping for ConnectionLeak issue in recovery.
Symptom: Connection Leak during XARecovery.
Resolution: AFC recovery implementation modified to handle the connection leak issue.
26818JR41276EventStoreBackedXAResource throws unhandled NullPointerException in Commit and Rollback calls for when event is null .
Symptom: NullPointerExceptions seen in the logs during Inbound processing of events.
Resolution: With the fix when an event for a requested Xid is not found in the EventStore, an XA exception will be thrown, which will be sent to the container. Depending on the error code set on the XAException based on one phase or two phase commit, the container will send an appropriate call. Example in case of two phase commit the container will reissue a commit call.
36816 JR41841Error while formatting the Xid
Symptom: Format check for pending xids from adapter was failing, because of which recovery of pending transactions not taking place
Resolution: Xid format check in XidImpl fixed to verify the correctness of the xid format.
46815Forget and Rollback calls are not setting xid to null, post recovery .
Symptom: Events that have been rolled back during recovery are not picked up for future processing.
Resolution: Events that have been rolled back during recovery needs to be made eligible for future poll cycles to fetch them, this is done by updating these events in the event store such that they qualify as new events, that can be fetched by future poll cycles.
56744 JR41727CheckIllegalXMLCharacter is using String instead of StringBuffer which will eventually lead to a high heap usage
Symptom: Use of String in CheckIllegalXMLCharacter leads to creation of large number of String objects as String is immutable, heap profiling showed increasing number of String objects that are not getting cleaned up, this has a potential to cause a problem when the input size is large.
Resolution: Changed the implementation to use StringBuffer instead of String.
66322If an exception occurs while trying to shutdown the EventManager, EventManager is tried to be shutdown infinitely.
Symptom: If an exception occurs while trying to shutdown the EventManager, EventManager is tried to be shutdown infinitely. This is because the JCA timer was not getting cancelled.
Resolution: Even if an exception occurs while EventManager is being tried to shutdown, the JCA timer is cancelled so as to make sure their life cycles are in sync.
76928 JR42026WorkRejectedException in logs, followed by adapter stopping to poll.
Symptom: WorkRejectedException in logs, followed by adapter stopping to poll.
Resolution: Work that was rejected was not getting removed from the workInPorgress list which was resulting in no new work to be added for submission, as a result of which adapter could not poll once a poll work was rejected.
8JR41843JDBC Adapter inbound polling not filtering events with XID.
Symptom: It was found that JDBC adapter was not filtering the events based on the XID.
Resolution: The XID value was getting set to null in the adpater code. Hence XID was getting neglected and filtering was not happening. Now XID value is been retrieved and is set in the code.



This table lists the fixes in Adater Foundation Classes for 7.0.0.4_IF05.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this interim fix.
Fixes
#CRAPARTitleDetails
5FileNotFound issue when file URL points to file within a jar in WBIDataBindingGenerator.
Symptom: FileNotFound issue when file URL points to file within a jar.
Resolution: Problem was occuring because the AFC code assumed that the URL will also point to a file, support for other protocols was not provided. This is corrected to enable support for all protocols in URL.

This table lists the fixes in JDBC Adater Classes for 7.0.0.4_IF04.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this interim fix.
Fixes
#CRAPARTitleDetails
4RTC 6261Mapping of Stored procedures datatypes for NCHAR and NVARCHAR2 to string.
Symptom: Stored procedure parameters of type NCHAR and NVARCHAR2 were being mapped to boolen.
Resolution: Fixed the DBAdapterCore code to handle these types properly.


This table lists the fixes in Adater Foundation Classes for 7.0.0.4_IF03.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this interim fix.
Fixes
#CRAPARTitleDetails
3RTC 6483NullPointerException from EventStoreBackedXAResource during crash recovery mode.
Symptom: When adapter is running in crash recovery mode, the EventStoreBackedXAResource throws NullPointerException, when the events in the event table are missing.
Resolution: Null check included in commit, forget and rollback methods of EventStoreBackedXAResource for recovery.



This table lists the fixes in Adater Foundation Classes for 7.0.0.4_IF02.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this interim fix.
Fixes
#CRAPARTitleDetails
1103778JR40681The messageendpoint.release() method in CallbackEventSender for non-transacted delivery is not called.
Symptom: When the messageendpoint.release() method is not called for non-transacted delivery, the messageendpoint object won't be released back to the pool and the runtime easily run of memory over the a period of time.
Resolution: Call the messageendpoint.release method for non-transacted delivery.
2103806Connection retry limit is not working as expected
Symptom: During adapter polling cycle, if the adapter is not able to establish the connection to the EIS, it does not retry specified times
Resolution: Catch and log the CommException in the run method of PollEventManagerWorker
3RTC 6218Failed event retry is not working as expected
Symptom: During adapter polling cycle, if the adapter is not able to deliver the event sucessfully to the endpoint, it retries for more than the specified times
Resolution: Cancel the JCA timer task in the PollEventManagerWorker, when the event manager is shutdown.



This table lists the fixes in Adater Foundation Classes for 7.0.0.4_IF01.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this interim fix.
Fixes
#CRAPARTitleDetails
1103618Polling on WMB leads to hanging thread when the flow is stopped.
Symptom: During Inbound polling on WebSphere Message Broker, there is a thread deadlock situation encountered if the message flow is stopped during the processing of an event.
Resolution: The timer mechanism used to schedule the polling thread leads to deadlock situation. The polling mechanism on WMB is now handled by using the work manager to manage and execute the polling thread.
2103619Detect Illegal XML property should not shown on WMB.
Symptom: Detect Illegal XML character feature does not applie to WebSphere Message Broker and WebSphere Application server runtimes. This property should not be visible in the external service wizard during Inbound and Outbound on WMB and RAD.
Resolution: The property is removed from the external service wizard when the tooling is Message Broker toolkit or Rational Application Developer.


This table lists the enhancements and fixes in fix pack version 7.0.0.4.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this fix pack.
Fixes
#CRAPARTitleDetails
1102357JR38018JDBC Adapter to provide backward compatibility with the Wrapper business object in v6.1.
Symptom: The runtime behavior of Wrapper business object JDBC Adapter are not compatibile with v6.1.
Resolution: JDBC Adapter provide backward compatibility with the Wrapper business object in v6.1.
2102584JR38387JDBC Adapter has performance issue while processing large hierachy business objects.
Symptom: When process large and deep hierarchy BO, there is performance issue for the reason of original adapter's cursor mechanism. Accompany with high CPU utility, the performance issue caused the low efficiency on processing BO.
Resolution: Provide the fix on the cursor mechanism and the cursor usage in JDBC Adapter to improve the performance on large and deep hierarchy BO.
3101835JR37501JCA JDBC adapter failed in heavy workload multiple threads environment.
Symptom: When JCA JDBC adapter runs in heavy workload multiple threads environment,it return a 'Cannot call cleanup on a ManagedConnection while it is still in a transaction' error message.
Resolution: Fixed. Make sure to close WAS datasource connection after JCA JDBC adapter cleanup method is invoked.
4100685JR35739,JR35591Standalone adapter failed to work in a sequence of local global transaction.
Symptom: Firstly run local transaction, secondly run global transaction PI file and then run local transaction PI file, there's some transaction related errors happen.
Resolution: With this fix, the sequence of local global transaction can work well.
5102613JR38019Enable JCA timer capability for inbound polling
Symptom: Adapter uses a polling thread in the runtime, which will poll as per the pollperiod. The polling thread will be only submitted once and always being in the runtime environment. When there are no events for a longer duration, the polling thread will be hung and throws a warning message from the JCA container.
Resolution: Use JCA timer to schedule the polling thread, so the polling thread would be submitted according to the JCA scheduler, which will solve the thread hang issue.
6101456Detecting illegal XML characters in SDO DESPI of Adapters.
Symptom: A runtime exception is thrown during the BOXML serialization if the business object generated by the Adapter contains invalid xml characters.
Resolution: Adapter provides options to let the user to make choices and add validation in SDO DESPI of Adapters. Currently user can choose any of the 3 options: (a) Do not validate business object content for illegal XML characters (default); (b) Throw exceptions if business object content contains illegal XML charaters;(c) Discard illegal XML characters in business object content and log.
7103438Provide implementation for SkipTo method in CursorMap Implementation.
Symptom: Adapter encounters performance issue while processing large hierachy business objects.
Resolution: Adapter has been optimised for handling the large business objects by using the skipTo() method.
8103162JR39129Duplicate messages are created in the event table by Flat file Adapter due to unexpected database outage.
Symptom: During Adapter Inbound operation, after several unplanned database outages during event processing duplicate messages can be observed. This is due to the fact that the event is delivered but the overall transaction is marked failure and no rollback is called by the transaction manager.
Resolution: If the event is already delivered to the downstream components but the overall transaction is marked failure due to issues in downstream component, the event is deleted if no rollback is issued.


This table lists the enhancements and fixes in fix pack version 7.0.0.3.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this fix pack.
Fixes
#CRAPARTitleDetails
1101325When there is a column with an identity, there is a need to edit UID ASI manully to support the column.
Symptom: When there is a column with an identity (auto-increased value), after EMD, to manually edit UID ASI in business object definition is needed in order to support the column.
Resolution: JDBC Adapter is able to support a column with an identity without need to edit UID ASI manually.


This table lists the enhancements and fixes in fix pack version 7.0.0.1.
Enhancements
#CRAPARTitleDetails
There are no enhancements in this fix pack.
Fixes
#CRAPARTitleDetails
1100918When there has VIEW business objects in the generated artifacts, "Object not found..." error message shown in iterative development.
Symptom: When there has VIEW business objects in the generated artifacts, "Object not found..." error message shown in iterative development. Also, in the right side of object discovery window, the VIEW business object will be filtered.
Resolution: Adapter fixed this issue, the error message will not show, and the VIEW business object can be displayed in the right side of object discovery window.
2100622When "assuredOnceDelivery" is false and adapter works in dynamic inbound mode, adapter can not poll events.
Symptom: When "assuredOnceDelivery" is false and adapter works in dynamic inbound mode, adapter can not poll events.
Resolution: Adapter can support "assuredOnceDelivery=false" and work in dynamic inbound mode.
3100586When using XA Datasource connection to establish database connection is selected and the "join global transaction" option is disabled,JDBC Adapter can not rollabck transaction.
Symptom: When using XA Datasource connection to establish database connection is selected and the "join global transaction" option is disabled,JDBC Adapter can not rollabck transaction.
Resolution: Adapter may rollback the transaction correctly when using XA Datasource connection is selected and "join global transaction" option is disabled.
4100712In the process of inbound, adapter can not support the ARRAY type with a complex type (STRUCT/ARRAY) for table business object.
Symptom: In the process of inbound, adapter can not support the ARRAY type with a complex type (STRUCT/ARRAY) for table business object.
Resolution: Adapter could support the ARRAY type with a complex type (STRUCT/ARRAY) in table business object.
577686In the database selection screen of enterprise service discovery, the port number shown as 50000 is not the default value of db2 iSeries.
Symptom: In the database selection screen of enterprise service discovery, the port number shown as 50000 is not the default value of db2 iSeries.
Resolution: Remove the wrong default port number 50000 on DB2 iSeries in the database selection screen of enterprise service discovery.
6100615JDBC endpoint configuration "event query type for processing events" comes back to "Standard" even if you change to "user-Defined(Dynamic)" and save it.
Symptom: On JDBC inbound endpoint configuration in WID edit environment, the value of "event query type for processing events" gets back to default "Standard" even if you change to "User-Defined(Dynamic)" and save it.
Resolution: The value of "event query type for processing events" is changed to the desired value after saving changes.
7100345Remove the WAS private API call in adapter code(transaction related code).
Symptom: WAS private API is deprecated and they should be removed.
Resolution: fixed.Remove the WAS private API call in adapter code(transaction related code).
8100383When "assuredOnceDelivery" is false and there is a event delivery failure, the status of the event is "0" and not changed to "-1".
Symptom: When "assuredOnceDelivery" is false and there is a event delivery failure, the status of the event is "0" and not changed to "-1" and the event will be polled infinitely.
Resolution: When "assuredOnceDelivery" is false and there is a event delivery failure, the status of the event becomes "-1" successfully.
9100262Ambiguous semantics of the max connection number in the event delivery config.
Symptom: Adapter will not use connection pool for event delivery if max connection number is 1 and delivery mode is "UNORDERED". In this situation, multiple thread will share one connection without thread safe mechanism,which will cause exception.
Resolution: The fix makes connection pool be used when max connection number is 1, connection pool keep thread safe and thus is recommended to use under "UNORDERED" and "ORDERED BY KEY" delivery mode; If user preferred not to use connection pool, he/she could set max connection number to 0, while thread safe will not be guaranteed.
1077930Printing out the AdapterFoundationClasses version in the Logs/traces.
Symptom: Currently with all the adapters , The AFC version is not printed out in the logs/traces. It would be really helpful to have this information printed out to the logs/traces especially in debugging issues due to conflicting AFC being loaded at runtime.
Resolution: print AFC version in the trace.
11100356When adapter creates 2 or more different modules with business object having same name but different namespace and structure, inbound and outbound operations of those modules will throw NullPointerException.
Symptom: When adapter creates 2 or more different modules with business object having same name but different namespace and structure, inbound and outbound operations of those modules will throw NullPointerException.
Resolution: Redefined the methods of "hashCode()" and "equals()" in the SDOV1Type class. Then individual adapter can distinguish those business object correctly by "namespace + name" if those BOs name are equal.
12100406For Adapter inbound and outbound operation(standalone deployment), after the application is restarted, the NullPointerException will appear when the adapter tries to query the ASI Infor from cache.
Symptom: For Adapter inbound and outbound operation(standalone deployment), after the application is restarted, the NullPointerException will appear when the adapter tries to query the ASI Infor from cache.
Resolution: The BO's namespace and name has been preserved as business object instance's fields. After the application is restarted, adapter can still get them from those instance's field rather than the stale data cache.
1393532The method of "getMaxLength" doesn't work fine for the XSMetaData as it can't be resolved by the lastest WPS version(0947.08). So the XSMode utility API of XSMetaData should be replaced with new API of "SDOUtil.getMaxLength".
Symptom: The method of "getMaxLength" doesn't work fine for the XSMetaData as it can't be resolved by the lastest WPS version(0947.08). So the XSMode utility API of XSMetaData should be replaced with new API of "SDOUtil.getMaxLength".
Resolution: Replaced the WAS utility API from the class "com.ibm.xml.sdo.spi.XSMetaData" with new WAS API "com.ibm.websphere.sdox.SDOUtil.getMaxLength()".
1499888When adapter gets ARM transaction factory name to process ARM transaction, a WAS internal private API is used for it, which need to be replaced with public interfaces.
Symptom: When adapter gets ARM transaction factory name to process ARM transaction, a WAS internal private API is used for it, which need to be replaced with public interfaces.
Resolution: Switched to Invoke PmiRmJmxService MBean, a set of public interfaces exposed by WAS to get ARM transaction fatory name.


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


To upgrade to the fix pack version 7.0.0.4, 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 Interim Fix 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. Stop the deployed application.
   b. Select Update for the corresponding application on the WebSphere Process Server administrative console.
   c. Select Replace or add a single file with a relative path as name of the RAR file - CWYBC_JDBC.rar.
   d. Click Browse on the local file system to select the updated RAR file that has the changes.
   e. 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.
   f. Start the application again.


Jul y 26, 2011 6:00 PM
(C) Copyright 2011 IBM Corporation. Proprietary and Confidential. All Rights Reserved.