Sunday, November 20, 2011

Oracle SOA Suite - Configure transaction timeout for BPEL.


Oracle SOA Suite - Configure transaction timeout for BPEL:

The timeouts should be configured based on the below condition

SyncMaxWaitTime < BPEL EJB's transaction timeout < Global Transaction Timeout

Setting the SyncMaxWaitTime : 

 This is the maximum time a synchronous BPEL process waits before it times out to get the response from another BPEL or a web service.
  •  Login to EM console
  • Expand SOA and right click on "soa-infra"
  • From context menu, select SOA Administration –> BPEL properties
  • Click on "More BPEL Configuration properties"
  • Enter the appropriate value for the SyncMaxWaitTime

Setting the global transaction timeout at Weblogic Domain Level:

This property controls the transaction timeout seconds for active transactions. If the transaction is still in the "active" state after this time, it is automatically rolled back.
  • Log into Oracle Weblogic Administration Console.
  • Click Services -> JTA.
  • Change the value of Timeout Seconds to the required value (the default is 30).
  • Click Save.
  • Restart Oracle Weblogic Server.

Overriding the transaction timeout setting for BPEL EJB's:

The timeout properties for the EJB's control the particular timeout setting for the SOA application, overriding the global setting specified by the JTA timeout
  • Log into Oracle Weblogic Administration Console.
  • Click Deployments.
  • Expand soa-infra -> EJBs.
  • Click on the configuration tab for the timeout setting for each of EJB’s listed below and the change the time out values as required.
  • Following EJBs need to be updated:
BPELActivityManagerBean
BPELDeliveryBean
BPELDispatcherBean
BPELEngineBean
BPELFinderBean
BPELInstanceManagerBean
BPELProcessManagerBean
BPELSensorValuesBean
BPELServerManagerBean
  • Click Save.
  • Restart Oracle Weblogic Server.

2 comments:

  1. Great, thanks for post.
    But sometime my managed soa_server shuts down with error:
    BINDING.JCA-12511
    JCA Binding Component connection issue.
    JCA Binding Component is unable to create an outbound JCA (CCI) connection.
    worker:WorkOut [ Produce_Message_ptt::Produce_Message(body) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: javax.resource.ResourceException: Failed to setup the Resource Adapter Connection for enlistment in the transaction, Pool = 'eis/wls/Queue', javax.transaction.SystemException: start() failed on resource 'eis/wls/Queue': XAER_RMERR : A resource manager error has occured in the transaction branch
    weblogic.transaction.internal.ResourceAccessException: Transaction has timed out when making request to XAResource 'eis/wls/Queue'.
    at weblogic.transaction.internal.XAResourceDescriptor.startResourceUse(XAResourceDescriptor.java:668)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1200)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1134)


    My settings: SyncMaxWaitTime (360), BPEL EJB's (420), JTA(540)
    Error occurs during peak loads.
    How i can fix it?
    thanks!

    ReplyDelete