Monday, June 24, 2013

<EJB> <BEA-010026><Exception occurred during commit of transaction Name

Error:-

<Error> <EJB> <BEA-010026><Exception occurred during commit of transaction Name=[EJB com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean.handleInvoke(java.lang.
String,boolean)],Xid=BEA1-11A31559DD40A4092BE4(257133113),Statxus=Rolled back. [Reason=javax.transaction.xa.XAException: JDBC driver does not support XA, hence cannot be a participant in two-phase commit. To force this participation, set the GlobalTransactionsProtocol attribute to LoggingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source = AIADataSourceDS],numReplie
sOwedMe=0,numRepliesOwedOthers=0,seconds since begin=2,seconds left=60,NonXAServerResourceInfo[WL_JDBC_LLR_POOL.SOADataSource]=(ServerResourceInfo[WL_JDBC_LLR_POOL.SOADataSource]

Root Cause:- 

 Data source "AIADataSourceDS" is non-XA data source using "oracle.jdbc.OracleDriver" driver. "Supports Global Transactions" was enabled to support Global Transaction by the non-XA data sources. When you select Supports Global Transactions, you must also select the protocol for WebLogic Server to use for the transaction branch when processing a global transaction. There are three protocols for this-
  • Logging Last Resource
  • Emulate Two-Phase Commit
  • One-Phase Commit  
However in this case, none of the above protocol was selected.

Solution:-

There are two solutions for this based on the requirement

1. If your requirement is to support global transaction using nonXA datasource then select any of the above protocol. Save and activate your changes. Restart the servers to which the data source was targeted.

2. If your requirement is to support local transaction then uncheck "Supports Global Transactions". Save and activate your changes. Restart the servers to which the data source was targeted.

No comments:

Post a Comment