How to configure transaction timeout for BPEL and Mbeans.
Setting transaction timeouts help manage transaction for client and partner links. suppose you want to force a BPEL to wait for maximum of 2 (120 seconds) minutes to get reply from a Partner Link. How do you achieve that ?, also what other timeout settings need to be taken care of ?
Oracle suggests a thumb rule to set all timeout settings as follows.
syncMaxWaitTime< BPEL EJBs transaction timeout<Global transaction timeout(JTA)<=Distributed Lock Timeout in DB
Configure syncMaxWaitTime:In the navigation menu on the left expand the “SOA” folder and select item “soa-infra (soa_server1)” just below it. Then in the top of the details screen on the right expand the drop down menu “SOA Infrastructure” and select “SOA Administration” -> “BPEL Properties” . The “BPEL Service Engine Properties” screen opens. Click on link “More BPEL Configuration Properties…” at the bottom of this screen. Now the “Application Defined MBeans: BPELConfig:bpel” screen opens and finally you can edit the setting SyncMaxWaitTime (scroll down, setting #32 in list).
Configure BPEL EJBs:set timeouts in the soa EJB’s: Open the Weblogic console and click in the navigation menu on the left on “Deployments”. Expand “soa-infra” by clicking on [+] and expand node “EJBs” in the same way. Increase the “Transaction Timeout” (value in seconds) in the “Configuration” tab for the following EJB’s by clicking on them:
Configure JTA: Setting the global transaction timeout on Weblogic domain level :
- Login to Weblogic console (http://host:port/console);
- Select Services > JTA from the left pane;
- Select JTA tab in the right pane;
- Change the parameter:
Timeout Seconds (specifies the time in which a transaction will timeout, if uncommitted);
All steps described above can be done by editing directly BEA_HOME\user_projects\domains\SOADomain\config\config.xml and changing the value in section:
Configure distributed Lock TimeOut: This paarmeter need to be modified at DB level, log into DB Instance with sys user, and alter this parameter as desired.
show parameter distributed_lock_timeout, this will show the current setting and use below command to set timeout.
alter system set distributed_lock_timeout=600 scope=spfile sid=’*’; and then Restart Database.
and lastly, if you still face XA transaction timeout error, configure below settings in your DataSources.
To solve o solve “HeuristicMixedException” timeouts, set the “XA Transaction Timeout” of the soa jdbc connection to 0 seconds (means inherit) by expanding “Services” -> “JDBC” and select “Data Sources”. In the screen on the right select “SOADataSource” from the list and select tab “Configuration” and subtab “Transaction”. Enable setting “Use XA Datasource Interface” and setting “Set XA Transaction Timeout” and set setting “XA Transaction Timeout:” to 0 (inherit globale Weblogic transaction timeout).
Cubastion is among a very small number of specialized Siebel CRM Oracle Gold Partners in SME.