IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Services and service-related functions > Access external services with adapters > Configure and using adapters > IBM WebSphere Adapters > Oracle E-Business Suite > Troubleshooting and support

Solutions to common problems

Some of the problems you encounter while running WebSphere Adapter for Oracle E-Business Suite with your database are described, along with solutions and workaround. These problems and solutions are in addition to technotes documented on the software support website.

For a complete list of technotes about WebSphere Adapters, see http://www.ibm.com/support/search.wss?tc=SSMKUK&rs=695&rank=8&dc=DB520+D800+D900+DA900+DA800+DB560&dtm.


RecordNotFoundException for RetrieveAll operation in test client


Problem

When performing a RetrieveAll operation in the IBM Integration Designer test client, the RecordNotFoundException exception is generated when data is expected from the query. The following message is generated: RecordNotFoundException: Record not found in EIS.


Cause

This exception can occur if the WHERE clause for the SELECT statement does not set all the attributes of the business object. Leaving the attribute blank, which is the default value, is not the same as explicitly unsetting the value.


Solution

In the test client, set the values of the attributes that are required to <unset>. Repeat the RetrieveAll operation. If the exception is generated again, it is likely that no matching records exist in the database table.


CLOB datatypes of 4K or larger cannot be inserted into Oracle 9i or 10g databases


Problem

You get the following exception when inserting CLOB (character large object) values of 4 K and larger into Oracle 9i or 10g databases:


Cause

You are using an older driver that does not correctly support CLOBs larger than 4K.


Solution

Use the Oracle Thin driver from Oracle 10.1.0.2 or a later release.


Some generated business objects have no attributes for Oracle database objects


Problem

For some business objects that are generated from an Oracle database object, the generated business object has no attributes for the table columns.


Cause

Under certain conditions, the Oracle JDBC driver does not return the column information for a database object. The following bugs are currently filed with Oracle for these issues:

Additionally, column information is not returned if a private synonym that references an object in another schema is used.


Solution

For tables that have a synonym, generate the business object using the synonym for the table.

For synonyms of a procedure, generate the business object using the original procedure that the synonym is based on.

For private synonyms that reference an object in another schema, either use the original table or create a synonym in the current schema.


ResourceException exceptions during outbound processing

If you get a ResourceException exception, examine the root cause field to determine the cause. Common problems have the following root causes:


ResourceException exception during inbound processing

This exception indicates that there is a repeated problem connecting to the database. To polls for events, the adapter must connect top the database. If the connection fails, the adapter waits a configurable amount of time before trying to connect again. The adapter tries a configurable number of times before it stops polling. When the adapter stops polling, it generates the ResourceException exception.


Class loader violation occurs when starting the external service wizard


Problem

It is not possible to use the external service wizard after using a connection to the database in the Data perspective. At the end of the second panel of the wizard, the following exception is generated:

com.ibm.adapter.framework.api.ImportException
Reason: class loading constraint violated (class:
oracle/jdbc/driver/OracleConnection
method: getWrapper()Loracle/jdbc/OracleConnection;) at pc:0

The error occurs in both of the following situations:


Cause

The error occurs because the Data perspective and the wizard use their own class loaders. Once the DLL, which is the native library used by the JDBC driver, is loaded in the Data perspective, it cannot be loaded again in the wizard. JVMs have an inherent restriction that only allows one class loader to load native libraries at any defined time. So if class loader A loads DLL B, then no other class loader can load DLL B until class loader A is released and garbage is collected. Because you cannot really control garbage collection, it typically means that if you want to load DLL B with another class loader, you need to restart the JVM. This limitation is a known one and is documented for IBM BPM or WebSphere Enterprise Service Bus.


Solution

The only solution is to restart IBM Integration Designer when this error occurs.


Closed connection error occurs when using XA with Oracle 10g


Problem

When the Adapter for Oracle E-Business Suite is used to perform an XA transaction using Oracle 10g, the adapter generates a closed connection exception: javax.resource.ResourceException: Closed Connection.


Cause

This is a known issue with the Oracle 10g database driver. The following bug is filed with Oracle for this issue: 3488761 Connection closed error from OracleConnection.getConnection() - 10G drivers.


Solution

The bug is fixed in the Oracle 10g Release 2 driver. As a workaround, you can use the Oracle 9i JDBC Thin drivers to connect to the database for XA transactions.


Error occurs while starting a transaction on Oracle


Problem

When the Adapter for Oracle E-Business Suite is used to perform an XA transaction using Oracle database, the following error is generated: WTRN0078E: An attempt by the transaction manager to call start on a transactional resource has resulted in an error. The error code was XAER_RMERR.


Cause

For the Oracle database server to support XA transactions, some commands need to be run.


Solution

Run the two scripts that are included in the Oracle directory. This activity mostly needs to be performed by your Oracle database administrator, because you must be logged on to Oracle as SYSOPER or SYSDBA to have the necessary permissions for these scripts to work. The scripts are:

<ORACLE_HOME>javavm\install
file: initxa.sql
file: initjvm.sql

The initxa.sql script configures the database for XA. Once it runs successfully, the database is configured for XA. The script might run successfully for the first time you try.

If it does not run successfully, it is because some of the database memory spaces are too small.

To fix this error, run the initjvm.sql script. It may probably fail again, but in doing so, it indicates which parameters need to be adjusted. The parameters are stored in this file:

<ORACLE_HOME>\database
file: init<DATABASE_SID>.ora

Table 1.shows two parameters that typically need to be increased. Your particular database configuration might require adjustment of different parameters.

Typical parameter sizes
Parameter Name Minimum Value
java_pool_size 12000000
shared_pool_size 24000000


Outbound fails due to an exception in global transactions


Problem

Outbound fails due to an exception in the global transaction and the global transaction cannot be rolled back successfully.


Cause

JCA WebSphere Adapter for Oracle E-Business Suite version 6.2 and version 7.5.0.3 supports business objects for exceptions IntegrityConstraintViolationException, MatchesExceededLimitException, MissingDataException, MultipleMatchingRecordsException, ObjectNotFoundException, RecordNotFoundException, and UniqueConstraintViolatedException. When any of these exceptions are thrown, the EIS binding encapsulates the exceptions as corresponding fault business objects like IntegrityConstraintFault, MatchesExceededLimitFault, MissingDataFault, MultipleMatchingRecordsFault, ObjectNotFoundFault, RecordNotFoundFault, and UniqueConstraintFault.

As soon as the EIS binding receives the fault business object, it throws a ServiceBusinessException instead of a ServiceRuntimeException. In global transactions, if a component throws a ServiceRuntimeException, the transaction manager will roll back the global transaction. However, if a component throws a ServiceBusinessException, the transaction manager commits global transaction.


Solution

  1. Delete all fault business object binding in the .import file.

  2. Define fault handlers to deal with business faults as shown below.
    DataObject bo = null;
    		try {
    			bo = (DataObject) locateService_JDBCOutboundInterfacePartner().
    invoke("createDb2adminAddressBG", createDb2adminAddressBGInput); } catch (ServiceBusinessException e) { // TODO Auto-generated catch block throw new ServiceRuntimeException(e); }

    Whenever WebSphere Adapter for Oracle E-Business Suite outbound process has any exception, a ServiceRuntimeException is generated and the global transaction is rolled back. Otherwise, the global transaction is committed.


A closer look at the transaction (XID) column in the event table

If the adapter is configured for assured once delivery, use the status column with the XID column to determine whether the event has been processed:


Handling unexpected results from a query SQL statement

Should you receive unexpected results from a query, turn on tracing and look at the query SQL in the log. Turning on tracing is especially helpful when you are in the test client to see if you forgot to unset all the unnecessary attributes. It is also practical to turn on tracing to determine if you did not specify your business object correctly.


Adapter returns version conflict exception message


Problem

When install multiple adapters with different versions of CWYBS_AdapterFoundation.jar, and if a lower version of the CWYBS_AdapterFoundation.jar is loaded during run time, the adapter returns the ResourceAdapterInternalException error message, due to a version conflict.

For example, when install Oracle E-Business Suite adapter version 7.0.0.3 and WebSphere Adapter for Oracle E-Business Suite version 7.5.0.3, the following error message is displayed "The version of CWYBS_AdapterFoundation.jar is not compatible with IBM WebSphere Adapter for Oracle E-Business Suite" as IBM WebSphere Adapter for Oracle E-Business Suite loads file:/C:/IBM/WebSphere/ProcServer7/profiles/ProcSrv01/installedConnectors/CWYOE_OracleEBS.rar/CWYBS_AdapterFoundation.jar with version 7.0.0.3. However, the base level of this jar required is version 7.5.0.3. To overcome this conflict, you must migrate all adapters to the same version level.


Solution

Migrate all adapters to the same version level.

For further assistance, visit http://www.ibm.com/support/docview.wss?uid=swg27006249.


The Add and Remove buttons in the external service wizard do not function properly


Problem

When the external service wizard is run with the same Oracle E-Business Suite RAR file consecutively, and the imported Oracle E-Business Suite driver libraries are selected to be removed, all the libraries, even those not selected, are removed.

For example, the Oracle driver libraries consists of a driver JAR file and a license JAR file. During the second run, if you try to remove one of the JAR files, both the JAR files are removed.


Cause

This is caused because of an issue with IBM Integration Designer.


Error displayed when using external service wizard


Problem

Error is displayed when using the external service wizard.

  1. Add a Oracle E-Business Suite driver file in the Locate the Required Files and Libraries window.

  2. Click Next and move to the Specify the Discovery Properties window.

  3. Click Back and go to the Locate the Required Files and Libraries. Then add another Oracle E-Business Suite driver file.

  4. Click Next and move to the Specify the Discovery Properties window.

IBM WebSphere Adapter for Oracle E-Business Suite returns the following error: 'Failure in connection to EIS. Failed to load the driver: oracle.jdbc.driver.OracleDriver. Check that the Oracle E-Business Suite driver classes are in the class path'.


Cause

This is an Eclipse limitation for class loading.


Solution

Close the connector project and reopen it to add the Oracle E-Business Suite driver files again.


Unable to start adapter through web services


Problem

After configuring the adapter, you might note that:

  1. the webservices client based on the WSDL is not getting generated properly in IBM Integration Designer.
  2. you may not be able to invoke the WSDL using certain webservices client, such as RESTUI firefox plugin and soapUI tool.


Solution

Perform the following steps to enable the adapter module to load the ASI file.

  1. Create a library project.
  2. Change to the Enterprise Explorer view in IBM Integration Designer.
  3. Locate the ASI file of the adapter in connector project -> connectorModule.

  4. Copy the ASI file of the adapter and paste it in the library project.

  5. Add the library project to the list of dependencies for the adapter module.
  6. Clean project.


Staging table creation for DB2 fails with SQL errors


Problem

During advanced queue inbound, the staging table creation fails with SQL errors.


Resolution

If the staging table used for the advanced queue inbound feature is on DB2 , you must check for the below properties to have the advanced queue inbound feature functional. This is DB2 driver/database behavior.

To have LOB data read as a stream with DB2 driver, the following custom properties on the data source must be created using the administrative console:

progressiveStreaming = 2

fullyMaterializeLobData = true

Based on the DB2 version used (if server supports progressive streaming or not), the values for the properties fullyMaterializeLobData and progressiveStreaming must be set as described in Properties for the IBM DB2 Driver for JDBC and SQLJ.

Troubleshooting and support