Error Using fatalErrorFailoverProcess to Handle Inbound Adapter Fatal Errors in ESB
(Doc ID 1180934.1)
Last updated on APRIL 23, 2019
Applies to:
Oracle Enterprise Service Bus - Version 10.1.3.1 to 10.1.3.5Information in this document applies to any platform.
Symptoms
Error while using activation agent's property fatalErrorFailoverProcess to handle inbound adapter fatal errors in ESB/BPEL.
The following scenario describes the error encountered in using fatalErrorFailoverProcess to handle inbound adapter fatal errors in ESB.
1. Create a BPEL process, BPELFatalErrorFailOverProcess to handle inbound adapter fatal errors. [Refer to Technote ‘http://www.oracle.com/technetwork/testcontent/adapter-tn-004-adapter-errormanagem-132565.pdf’ section ‘Adapter Fatal Error Failover BPEL Process’].
2. Create a database table TEST_EMP:
DBTable Script : CREATE TABLE TEST_EMP
(
EMP_ID number,
EMP_NAME VARCHAR2(100 BYTE),
ADDRESS VARCHAR2(1000 BYTE)
);
3. Create a database Adapter using ESB (say TestDBAdapter) to poll rows of table TEST_EMP.
4. Create below end point properties in inbound adapter service to call fatalErrorFailoverProcess:
<property name="java.naming.factory.initial" value="com.evermind.server.rmi.RMIInitialContextFactory"/>
<property name="java.naming.provider.url" value="opmn:ormi://<soa hostname>:<opmn request port>:<soa container name>/orabpel"/>
<property name="java.naming.security.principal" value="oc4jadmin"/>
<property name="java.naming.security.credentials" value="password"/>
<property name="fatalErrorFailoverProcess" value="wsif://http://<soa hostname:soa port>/orabpel/default/BPELFatalErrorFailOverProcess/<BPEL Process Revision>/BPELFatalErrorFailOverProcess?wsdl|initiate|payload"/>
</endpointProperties>
5. Insert a row into table ‘TEST_EMP’. Rows get polled successfully by the database adapter. Ensure that ESB Instances are created successfully.
6. Test for fatal error:
a. Alter table to generate fatal error:
alter table TEST_EMP modify(emp_id varchar2(100 byte),emp_name number);
b. Insert row into table ‘TEST_EMP’.
Test Result:
i. Database adapter does not poll Rows.
ii. BPELFatalErrorFailOverProcess process is not invoked.
Following errors are generated in log.xml:
<MSG_TEXT>JCA inbound adapter service listener for "DefaultSystem.TestDB_RS.receive" with endpoint ID "[TestDB_ptt::receive(TestEmpCollection)]" has been requested to shutdown by Resource Adapter due to fatal error. Reason : ORABPEL-11624
DBActivationSpec Polling Exception.
Query name: [TestDB], Descriptor name: [TestDB.TestEmp]. Polling the database for events failed on this iteration. [Caused by: ORA-01722: invalid number]
If the cause is something like a database being down successful polling will resume once conditions change. Caused by Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.4.0) (Build 080602)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-01722: invalid number
Error Code: 1722
Call:SELECT EMP_ID, EMP_NAME, ADDRESS FROM TEST_EMP ORDER BY EMP_ID ASC
Query:ReadAllQuery(receive_1277250102989.TestDB.TestEmp).
</MSG_TEXT>
</PAYLOAD>
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Cause |
Solution |
References |