How to avoid BPEL errors due to adapters response time
Friday, January 29, 2010
If BPEL adapter response is slow then you may notice follwing error in the container logfile from ORACLE_HOME\opmn\logs\.
ORABPEL-05002
ORABPEL-02182
JTA transaction is not present the transaction is not in active state
Message handle error
Cause:
The adapter response time is greater than the predefined waiting time for a BPEL instance, therefore the BPEL instance does not get dehydrated in due time and fails by throwing above mentioned errors.
Solution:
Option I
Explicitely dehydrate your BPEL instance before invoking the adapter.
This can be done by inserting a Java_embedded activity before the Invoke, with this tiny java code: checkpoint();. This will dehydrate the BPEL instance after its initiation without waiting it to complete And you will see it in the BPEL Console in pending status(waiting for the adapter response).
Option II
Increase the transaction timeout values in order to make the BPEL instance to wait more time until a response returns from the adapter.
Step I: Go to Oracle_Home\j2ee\
Step II: Go to Oracle_Home\j2ee\
Step III: Go to Oracle_Home\bpel\domains\
Step IV (Optional): Add following properties to the partnerlink in your BPEL project, in order to make the adapter retriable:
retryInterval --30
retryMaxCount -- 20
Step V: Redeploy the BPEL project
Step VI: Restart SOA server & verify.