While running Bpel processes you might run into the following errors:
…
Transaction Rolledback.: weblogic.transaction.internal.TimedOutException: Transaction timed out
….
weblogic.transaction.internal.TimedOutException: Transaction timed out after xxx seconds
….
Caused by: weblogic.transaction.TimedOutException: Transaction timed out after 299 seconds
…. And so on….
Explanation & Solution:
Those errors occurs when you run synchronous processes and don’t configure the transaction timeout correctly, or at all.
There are 3 parameters that affects this behavior:
syncMaxWaitTime, BPEL EJB’s transaction timeout, Global Transaction Timeout
Follow the bellow steps in order to understand how to increase the transaction timeout:
- First, keep the next relationship between those 3 parameters:
syncMaxWaitTime < BPEL EJB’s transaction timeout < Global Transaction Timeout
- Set the syncMaxWaitTime parameter:
Log into EM ->Right click on “soa-infra” -> “SOA Administration” -> “BPEL Properties” -> Click “More BPEL Configuration Properties”-> Change the value for syncMaxWaitTime - Set the BPEL EJB’s transaction parameter:
Shut down SOA server.
Log into Welogic console ->Deployment-> Expand soa-infra -> EJB’s -> for each of the following EJBs, change the ‘Transaction Timeout’ in the Configuration tab and save it:BPELActivityManagerBean
BPELDeliveryBean
BPELDispatcherBean
BPELEngineBean
BPELFinderBean
BPELInstanceManagerBean
BPELProcessManagerBean
BPELSensorValuesBean
BPELServerManagerBean
Mark the checkbox of the soa-infra under Deployment and update it.
Start SOA server. - Set the Global Transaction Timeout parameter:
Log into Welogic console -> Services -> JTA -> change the ‘Transaction Timeout” and save
Restart Weblogic server
Leave a Reply