Java 在使用两个数据源(DB2和Oracle)时面临EJB问题

Java 在使用两个数据源(DB2和Oracle)时面临EJB问题,java,ejb,Java,Ejb,请帮助我们解决以下两个问题 1.)将数据保存到两个不同数据库(Db2和oracle)时出现异常-(EJB模块) 2.)从两个不同的数据库(Db2和oracle)加载数据时有时会出现异常(EJB模块) 两次提交是否使用相同的事务?或者您正在使用不同的事务?它们的执行计划是如何安排的?是的,对两个Db tx.begin()使用相同的事务;udpate();tx.commit();update(){Dao.update();Dao.insert();} WTRN0078E: An attempt by

请帮助我们解决以下两个问题

1.)将数据保存到两个不同数据库(Db2和oracle)时出现异常-(EJB模块)

2.)从两个不同的数据库(Db2和oracle)加载数据时有时会出现异常(EJB模块)


两次提交是否使用相同的事务?或者您正在使用不同的事务?它们的执行计划是如何安排的?是的,对两个Db tx.begin()使用相同的事务;udpate();tx.commit();update(){Dao.update();Dao.insert();}
WTRN0078E: An attempt by the transaction manager to call start on a transactional resource has resulted in an error. The error code was XAER_PROTO. The exception stack trace follows: oracle.jdbc.xa.OracleXAException
        at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1034)
        at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:251)
        at com.ibm.ejs.cm.CMXAResourceImpl.start(CMXAResourceImpl.java:219)
        at com.ibm.ws.Transaction.JTA.JTAResourceBase.start(JTAResourceBase.java:145)
        at com.ibm.ws.Transaction.JTA.RegisteredResources.startRes(RegisteredResources.java:1241)
        at com.ibm.ws.Transaction.JTA.RegisteredResources.enlistResource(RegisteredResources.java:649)
        at com.ibm.ws.Transaction.JTA.TransactionImpl.enlistResource(TransactionImpl.java:3296)
        at com.ibm.ws.Transaction.JTA.TranManagerSet.enlist(TranManagerSet.java:407)
        at com.ibm.ws.Transaction.JTA.TranManagerSet.enlist(TranManagerSet.java:365)
        at com.ibm.ws.Transaction.JTA.TranManagerSet.enlist(TranManagerSet.java:379)
        at com.ibm.ejs.cm.pool.ConnectO.enlist(ConnectO.java:1171)
        at com.ibm.ejs.cm.pool.ConnectO.enlist(ConnectO.java:775)
        at com.ibm.ejs.cm.pool.ConnectO.preInvoke(ConnectO.java:2242)
        at com.ibm.ejs.cm.proxy.Proxy.__preInvoke(Proxy.java:269)
        at com.ibm.ejs.cm.proxy.Proxy.__preInvoke(Proxy.java:249)
        at com.ibm.ejs.cm.proxy.OracleConnectionProxy.prepareStatement(OracleConnectionProxy.java:188)
        at com.marks.ims.integration.jde.dao.AddressBookDAO.copyAddressBookZRecord(AddressBookDAO.java:305)
        at com.marks.ims.integration.jde.dao.AddressBookDAO.update(AddressBookDAO.java:92)
        at com.marks.ims.integration.jde.JDEInterfaceGateway.updateAccount(JDEInterfaceGateway.java:88)
        at com.marks.bizacct.model.ejb.BusinessAccountServicesBean.doInterfaceProcessing(BusinessAccountServicesBean.java:318)

CONM6016E: The system is unable to enlist with the transaction.  Issuing new (TransactionAbortedException).
com.marks.bizacct.exceptions.UnexpectedException: Error attempting to find business account in findByKey()::BusinessAccountServicesBean - javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 0x0 No; nested exception is:   org.omg.CORBA.TRANSACTION_ROLLEDBACK: javax.transaction.TransactionRolledbackException:  ; nested exception is: 
        com.ibm.websphere.csi.CSITransactionRolledbackException: Transaction marked rollbackonly  vmcid: 0x0  minor code: 0  completed: No