Managed datasources, Global transactions and XA

I have a question regarding the use of managed datasources and global transactions with oc4j 10.1.3.
From the documentation at:
http://download-west.oracle.com/docs/cd/B25221_04/web.1013/b14428/servdats.htm#CHDGJECC
I conclude that managed datasources by default support global transactions.
I have tested the following scenario:
A stateless session bean starts a container managed transaction. The bean updates data in two different databases through two different
managed datasources. The transaction is atomic.
What surprises me is that this works. I would think that I would need to configure the datasources to make use of XA.
Can someone explain why this works, wat is the difference between XA transactions and global transactions in this context?

Further to give more info the error users are facing is
Could not connect to 'oracle.jdbc.xa.client.OracleXADataSource'.

Similar Messages

  • When to use Global transaction and Local Transaction only

    Hi All,
    Could you please help with this question thats been troubling me from quite long time.
    When to create Global & local Transactions and Local Transaction Only while creating Data source on oracle Application Server 10 G.
    Do I get any advantages by using Global & local Transactions for creating Data Source
    Thanks In Advance.
    Regards,
    Ajay Kumar .Akula

    mattyG wrote:
    What is the difference between a single-process shared variable and a local variable?
    A single process shared variable is more like a global variable, because it can be accessed from any VI in your hierarchy. Local variables are strictly local to the single VI where they reside.
    Shared variables are a relatively new feature, while local and global variables are ancient. As such, shared variables are in many ways more modern and integrate better into state-of-the-art coding guidelines.
    Shared variables contain error terminals so you can enforce execution order. local variables have no such thing.
    A shared variable can stand on its own, while a local variable is always tied to a front panel object.
    You need a project for shared varaibles.
    You can easily turn a single process shared variable into a network shared variable later in the development, without the need to rewrite any code.
    LabVIEW Champion . Do more with less code and in less time .

  • A global transaction exception on  weblogic 8.1 sp4 and ingres ,could you give me some help

    My application deployed on weblogic 8.1 sp4 and ingres2.6,The ejb is BMP and
              transaction type is "required",so i configured XA connection pool with
              edbc.jar,which support XA transaction.but when excute an ejb mothod,it is
              always throw the Exeption:
              javax.ejb.FinderException: Unexpected exception while enlisting XAConnection
              jav
              a.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an
              inproper co
              ntext start() failed on resource 'flexstudio.xa.ds': XAER_PROTO : Routine
              was in
              voked in an inproper context
              javax.transaction.xa.XAException
              at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
              at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
              at
              weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
              urceInfo.java:1140)
              at
              weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
              sourceInfo.java:1072)
              at
              weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
              ourceInfo.java:240)
              at
              weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
              rverTransactionImpl.java:463)
              at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
              at
              weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              334)
              at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              at
              weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              ce.java:305)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              t(ExternalTransaction.java:53)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              Connection(ExternalTransaction.java:90)
              at
              com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              eryForList(GeneralStatement.java:123)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:613)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:587)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              ssionImpl.java:120)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              entImpl.java:78)
              at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              at
              com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
              rkflowPackageInfoDAO.java:892)
              at
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              dByName(WorkflowPackageBean.java:373)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              indByName(wfpackage_tzapts_Impl.java:335)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at
              sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              java:39)
              at
              sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              sorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:324)
              at
              weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              (BeanManagedPersistenceManager.java:152)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1784)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1756)
              at
              weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              findByName(wfpackage_tzapts_HomeImpl.java:190)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              WLSkel.invoke(Unknown Source)
              at
              weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              at
              weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              ef.java:108)
              at
              weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              at
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              dSubject.java:363)
              at
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              147)
              at
              weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              a:415)
              at
              weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              .java:30)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
              at
              weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              334)
              at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              at
              weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              ce.java:305)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              t(ExternalTransaction.java:53)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              Connection(ExternalTransaction.java:90)
              at
              com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              eryForList(GeneralStatement.java:123)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:613)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:587)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              ssionImpl.java:120)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              entImpl.java:78)
              at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              at
              com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
              rkflowPackageInfoDAO.java:892)
              at
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              dByName(WorkflowPackageBean.java:373)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              indByName(wfpackage_tzapts_Impl.java:335)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at
              sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              java:39)
              at
              sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              sorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:324)
              at
              weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              (BeanManagedPersistenceManager.java:152)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1784)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1756)
              at
              weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              findByName(wfpackage_tzapts_HomeImpl.java:190)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              WLSkel.invoke(Unknown Source)
              at
              weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              at
              weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              ef.java:108)
              at
              weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              at
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              dSubject.java:363)
              at
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              147)
              at
              weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              a:415)
              at
              weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              .java:30)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              at
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              dByName(WorkflowPackageBean.java:383)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              indByName(wfpackage_tzapts_Impl.java:335)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at
              sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              java:39)
              at
              sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              sorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:324)
              at
              weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              (BeanManagedPersistenceManager.java:152)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1784)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1756)
              at
              weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              findByName(wfpackage_tzapts_HomeImpl.java:190)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              WLSkel.invoke(Unknown Source)
              at
              weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              at
              weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              ef.java:108)
              at
              weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              at
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              dSubject.java:363)
              at
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              147)
              at
              weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              a:415)
              at
              weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              .java:30)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              javax.ejb.FinderException: Unexpected exception while enlisting XAConnection
              jav
              a.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an
              inproper co
              ntext start() failed on resource 'flexstudio.xa.ds': XAER_PROTO : Routine
              was in
              voked in an inproper context
              javax.transaction.xa.XAException
              at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
              at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
              at
              weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
              urceInfo.java:1140)
              at
              weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
              sourceInfo.java:1072)
              at
              weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
              ourceInfo.java:240)
              at
              weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
              rverTransactionImpl.java:463)
              at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
              at
              weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              334)
              at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              at
              weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              ce.java:305)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              t(ExternalTransaction.java:53)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              Connection(ExternalTransaction.java:90)
              at
              com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              eryForList(GeneralStatement.java:123)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:613)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:587)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              ssionImpl.java:120)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              entImpl.java:78)
              at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              at
              com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
              rkflowPackageInfoDAO.java:892)
              at
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              dByName(WorkflowPackageBean.java:373)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              indByName(wfpackage_tzapts_Impl.java:335)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at
              sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              java:39)
              at
              sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              sorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:324)
              at
              weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              (BeanManagedPersistenceManager.java:152)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1784)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1756)
              at
              weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              findByName(wfpackage_tzapts_HomeImpl.java:190)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              WLSkel.invoke(Unknown Source)
              at
              weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              at
              weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              ef.java:108)
              at
              weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              at
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              dSubject.java:363)
              at
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              147)
              at
              weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              a:415)
              at
              weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              .java:30)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
              at
              weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              334)
              at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              at
              weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              ce.java:305)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              t(ExternalTransaction.java:53)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              Connection(ExternalTransaction.java:90)
              at
              com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              eryForList(GeneralStatement.java:123)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:613)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:587)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              ssionImpl.java:120)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              entImpl.java:78)
              at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              at
              com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
              rkflowPackageInfoDAO.java:892)
              at
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              dByName(WorkflowPackageBean.java:373)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              indByName(wfpackage_tzapts_Impl.java:335)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at
              sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              java:39)
              at
              sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              sorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:324)
              at
              weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              (BeanManagedPersistenceManager.java:152)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1784)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1756)
              at
              weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              findByName(wfpackage_tzapts_HomeImpl.java:190)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              WLSkel.invoke(Unknown Source)
              at
              weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              at
              weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              ef.java:108)
              at
              weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              at
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              dSubject.java:363)
              at
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              147)
              at
              weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              a:415)
              at
              weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              .java:30)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              at
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              dByName(WorkflowPackageBean.java:383)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              indByName(wfpackage_tzapts_Impl.java:335)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at
              sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              java:39)
              at
              sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              sorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:324)
              at
              weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              (BeanManagedPersistenceManager.java:152)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1784)
              at
              weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              anager.java:1756)
              at
              weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              findByName(wfpackage_tzapts_HomeImpl.java:190)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              WLSkel.invoke(Unknown Source)
              at
              weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              at
              weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              ef.java:108)
              at
              weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              at
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              dSubject.java:363)
              at
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              147)
              at
              weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              a:415)
              at
              weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              .java:30)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              i hope to get more helpful information,so i turn on weblogic.debug
              switch with
              "-Dweblogic.Debug=weblogic.JDBCConn,weblogic.JDBCSQL,weblogic.JTA2PC,weblogic.JTAXA,weblogic.JTAJDBC"
              the below is debug output, i dont know wht always inproper transaction
              state.
              <Mar 14, 2006 11:11:58 AM GMT+08:00> <Info> <WebLogicServer>
              <BEA-000213> <Addin
              g address: 129.184.13.228 to licensed client list>
              <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <java.lang.Excep
              tion: TRACE: [ExecuteThread: '24' for queue:
              'weblogic.kernel.Default']ServerTM[
              ServerCoordinatorDescriptor=(CoordinatorURL=weblogic81sp4_test+129.184.13.228:80
              01+Intetest+t3+,
              XAResources={},NonXAResources={})].setTransactionTimeout(120).
              at
              weblogic.transaction.internal.TraceHelper.traceStack(TraceHelper.java
              :28)
              at
              weblogic.transaction.internal.TransactionManagerImpl.setTransactionTi
              meout(TransactionManagerImpl.java:415)
              at
              weblogic.ejb20.internal.MethodDescriptor.startTransaction(MethodDescr
              iptor.java:252)
              at
              weblogic.ejb20.internal.MethodDescriptor.getInvokeTx(MethodDescriptor
              .java:377)
              at
              weblogic.ejb20.internal.EJBRuntimeUtils.createWrapWithTxs(EJBRuntimeU
              tils.java:324)
              at
              weblogic.ejb20.internal.BaseEJBHome.preHomeInvoke(BaseEJBHome.java:35
              8)
              at
              weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:631)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              findByName(wfpackage_tzapts_HomeImpl.java:190)
              at
              com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              WLSkel.invoke(Unknown Source)
              at
              weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              at
              weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              ef.java:108)
              at
              weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              at
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              dSubject.java:363)
              at
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              147)
              at
              weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              a:415)
              at
              weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              .java:30)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              >
              <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <Xid=BEA1-0002D2
              21FAAB(2036170959),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,secon
              ds since begin=0,seconds left=-1142305918) wakeUpAfterSeconds(120)>
              <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <BEA1-0002D221FA
              AB: null: init(t/o=120,ttl=120)>
              <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <BEA1-0002D221FA
              AB: null: setProperty: weblogic.transaction.name=[EJB
              com.bull.flexflow.workflow
              .workflowpackage.WorkflowPackageBean.findByName(java.lang.String)]>
              <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <BEA1-0002D221FA
              AB: null: setName: [EJB
              com.bull.flexflow.workflow.workflowpackage.WorkflowPacka
              geBean.findByName(java.lang.String)]>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              com.b
              ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              tring)]- -pool:flexstudio.xa.ds- > DataSource.getConnection>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              com.b
              ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              tring)]- -pool:flexstudio.xa.ds- >
              DataSource.refreshXAConnAndEnlist(inXAConn:nu
              ll, conn:null, needsTxCtx:true)>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              com.b
              ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              tring)]- -pool:flexstudio.xa.ds- > DataSource.getXAConnFromPool
              waitSecs:117>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              com.b
              ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              tring)]- -pool:flexstudio.xa.ds- <
              DataSource.getXAConnFromPool:[EDBC-XAConnecti
              on[5], owner=null, rmConn=EDBC-XAVirtConn[6]], Num XAConn:1>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <BEA1-0002D221FA
              AB: [EJB
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
              me(java.lang.String)]: setLocalProperty:
              weblogic.jdbc.jta.flexstudio.xa.ds=webl
              ogic.jdbc.wrapper.TxInfo@1aaa2594>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              com.b
              ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              tring)]- -pool:flexstudio.xa.ds- XA conn assoc with
              tx:[EDBC-XAConnection[5], ow
              ner=flexstudio.xa.ds, rmConn=EDBC-XAVirtConn[6]]>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <BEA1-0002D221FA
              AB: [EJB
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
              me(java.lang.String)]: enlistResource:flexstudio.xa.ds>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <ResourceDescrip
              tor[flexstudio.xa.ds]: getOrCreate gets rd: name = flexstudio.xa.ds
              resourceType = 2
              registered = true
              scUrls = weblogic81sp4_test+129.184.13.228:8001+Intetest+t3+
              xar = flexstudio.xa.ds
              healthy = true
              lastAliveTimeMillis = -1
              numActiveRequests = 0
              >
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <BEA1-0002D221FA
              AB: [EJB
              com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
              me(java.lang.String)]: setCoordinatorURL
              =>ServerCoordinatorDescriptor=(Coordina
              torURL=weblogic81sp4_test+129.184.13.228:8001+Intetest+t3+,
              XAResources={},NonXA
              Resources={})>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <BEA1-0002D221FA
              AB6F1049B9: enlist flexstudio.xa.ds, beforeState=new>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <BEA1-0002D221FA
              AB6F1049B9: XA.start(rm=flexstudio.xa.ds, xar=flexstudio.xa.ds,
              flags=TMNOFLAGS)
              >
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <ResourceDescrip
              tor[flexstudio.xa.ds]: Resource 'flexstudio.xa.ds'
              setTransactionTimeout(120) no
              t called. callSetTransactionTimeout=false,
              supportsSetTransactionTimeout=true>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              <ResourceDescrip
              tor[flexstudio.xa.ds]: startResourceUse, Number of active requests:1, last
              alive
              time:0 ms ago.>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
              < -tx:null- -poo
              l:flexstudio.xa.ds- > XAConnection.getXAResource,
              xaConn:EDBC-XAConnection[5]>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
              < -tx:null- -poo
              l:flexstudio.xa.ds- < XAConnection.getXAResource,
              xaRes:EDBC-XAConnection[5]>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
              < -tx:null- -poo
              l:flexstudio.xa.ds- >
              XAResource.start(Xid:bea1-0002d221faab6f1049b9-666c6578737
              47564696f2e78612e6473, flags:TMNOFLAGS), xaRes:EDBC-XAConnection[5]>
              <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
              < -tx:null- -poo
              l:flexstudio.xa.ds- < XA error: XAER_PROTO : Routine was invoked in an
              inproper
              context
              javax.transaction.xa.XAException
              at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
              at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
              at
              weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
              urceInfo.java:1140)
              at
              weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
              sourceInfo.java:1072)
              at
              weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
              ourceInfo.java:240)
              at
              weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
              rverTransactionImpl.java:463)
              at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
              at
              weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              334)
              at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              at
              weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              ce.java:305)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              t(ExternalTransaction.java:53)
              at
              com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              Connection(ExternalTransaction.java:90)
              at
              com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              eryForList(GeneralStatement.java:123)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:613)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              MapExecutorDelegate.java:587)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              ssionImpl.java:120)
              at
              com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              entImpl.java:78)
              at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              at
              com.bull

    albert wrote:
              > My application deployed on weblogic 8.1 sp4 and ingres2.6,The ejb is BMP and
              > transaction type is "required",so i configured XA connection pool with
              > edbc.jar,which support XA transaction.but when excute an ejb mothod,it is
              > always throw the Exeption:
              Hi. In order to debug this we would need you to turn on
              the JTAXA, JTA2PC, JTAJDBC debug flags and in the
              Connection Pool under JDBCCOnnectionPoolMBean JDBCXADebugLevel="20".
              Then reproduce and provide server logs for all servers involved in
              the global transaction and the config.xml.
              This is complex enough that you should open an official support case
              to get help setting that up.
              Joe
              >
              >
              > ####################################################################
              > javax.ejb.FinderException: Unexpected exception while enlisting XAConnection
              > jav
              > a.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an
              > inproper co
              > ntext start() failed on resource 'flexstudio.xa.ds': XAER_PROTO : Routine
              > was in
              > voked in an inproper context
              > javax.transaction.xa.XAException
              > at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
              > at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
              > at
              > weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
              > urceInfo.java:1140)
              > at
              > weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
              > sourceInfo.java:1072)
              > at
              > weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
              > ourceInfo.java:240)
              > at
              > weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
              > rverTransactionImpl.java:463)
              > at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
              > at
              > weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              > 334)
              > at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              > at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              > at
              > weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              > ce.java:305)
              > at
              > com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              > t(ExternalTransaction.java:53)
              > at
              > com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              > Connection(ExternalTransaction.java:90)
              > at
              > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              > eryForList(GeneralStatement.java:123)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              > MapExecutorDelegate.java:613)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              > MapExecutorDelegate.java:587)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              > ssionImpl.java:120)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              > entImpl.java:78)
              > at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              > at
              > com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
              > rkflowPackageInfoDAO.java:892)
              > at
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              > dByName(WorkflowPackageBean.java:373)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              > indByName(wfpackage_tzapts_Impl.java:335)
              > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              > at
              > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              > java:39)
              > at
              > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              > sorImpl.java:25)
              > at java.lang.reflect.Method.invoke(Method.java:324)
              > at
              > weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              > (BeanManagedPersistenceManager.java:152)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1784)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1756)
              > at
              > weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              > findByName(wfpackage_tzapts_HomeImpl.java:190)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              > WLSkel.invoke(Unknown Source)
              > at
              > weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              > at
              > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              > ef.java:108)
              > at
              > weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              > at
              > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              > dSubject.java:363)
              > at
              > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              > 147)
              > at
              > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              > a:415)
              > at
              > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              > .java:30)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              >
              >
              > at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
              > at
              > weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              > 334)
              > at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              > at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              > at
              > weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              > ce.java:305)
              > at
              > com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              > t(ExternalTransaction.java:53)
              > at
              > com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              > Connection(ExternalTransaction.java:90)
              > at
              > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              > eryForList(GeneralStatement.java:123)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              > MapExecutorDelegate.java:613)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              > MapExecutorDelegate.java:587)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              > ssionImpl.java:120)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              > entImpl.java:78)
              > at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              > at
              > com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
              > rkflowPackageInfoDAO.java:892)
              > at
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              > dByName(WorkflowPackageBean.java:373)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              > indByName(wfpackage_tzapts_Impl.java:335)
              > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              > at
              > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              > java:39)
              > at
              > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              > sorImpl.java:25)
              > at java.lang.reflect.Method.invoke(Method.java:324)
              > at
              > weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              > (BeanManagedPersistenceManager.java:152)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1784)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1756)
              > at
              > weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              > findByName(wfpackage_tzapts_HomeImpl.java:190)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              > WLSkel.invoke(Unknown Source)
              > at
              > weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              > at
              > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              > ef.java:108)
              > at
              > weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              > at
              > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              > dSubject.java:363)
              > at
              > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              > 147)
              > at
              > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              > a:415)
              > at
              > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              > .java:30)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              >
              >
              > at
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              > dByName(WorkflowPackageBean.java:383)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              > indByName(wfpackage_tzapts_Impl.java:335)
              > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              > at
              > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              > java:39)
              > at
              > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              > sorImpl.java:25)
              > at java.lang.reflect.Method.invoke(Method.java:324)
              > at
              > weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              > (BeanManagedPersistenceManager.java:152)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1784)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1756)
              > at
              > weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              > findByName(wfpackage_tzapts_HomeImpl.java:190)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              > WLSkel.invoke(Unknown Source)
              > at
              > weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              > at
              > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              > ef.java:108)
              > at
              > weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              > at
              > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              > dSubject.java:363)
              > at
              > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              > 147)
              > at
              > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              > a:415)
              > at
              > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              > .java:30)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              > javax.ejb.FinderException: Unexpected exception while enlisting XAConnection
              > jav
              > a.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an
              > inproper co
              > ntext start() failed on resource 'flexstudio.xa.ds': XAER_PROTO : Routine
              > was in
              > voked in an inproper context
              > javax.transaction.xa.XAException
              > at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
              > at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
              > at
              > weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
              > urceInfo.java:1140)
              > at
              > weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
              > sourceInfo.java:1072)
              > at
              > weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
              > ourceInfo.java:240)
              > at
              > weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
              > rverTransactionImpl.java:463)
              > at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
              > at
              > weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              > 334)
              > at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              > at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              > at
              > weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              > ce.java:305)
              > at
              > com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              > t(ExternalTransaction.java:53)
              > at
              > com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              > Connection(ExternalTransaction.java:90)
              > at
              > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              > eryForList(GeneralStatement.java:123)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              > MapExecutorDelegate.java:613)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              > MapExecutorDelegate.java:587)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              > ssionImpl.java:120)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              > entImpl.java:78)
              > at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              > at
              > com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
              > rkflowPackageInfoDAO.java:892)
              > at
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              > dByName(WorkflowPackageBean.java:373)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              > indByName(wfpackage_tzapts_Impl.java:335)
              > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              > at
              > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              > java:39)
              > at
              > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              > sorImpl.java:25)
              > at java.lang.reflect.Method.invoke(Method.java:324)
              > at
              > weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              > (BeanManagedPersistenceManager.java:152)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1784)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1756)
              > at
              > weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              > findByName(wfpackage_tzapts_HomeImpl.java:190)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              > WLSkel.invoke(Unknown Source)
              > at
              > weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              > at
              > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              > ef.java:108)
              > at
              > weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              > at
              > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              > dSubject.java:363)
              > at
              > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              > 147)
              > at
              > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              > a:415)
              > at
              > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              > .java:30)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              >
              >
              > at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
              > at
              > weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
              > 334)
              > at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
              > at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
              > at
              > weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
              > ce.java:305)
              > at
              > com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
              > t(ExternalTransaction.java:53)
              > at
              > com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
              > Connection(ExternalTransaction.java:90)
              > at
              > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
              > eryForList(GeneralStatement.java:123)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              > MapExecutorDelegate.java:613)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
              > MapExecutorDelegate.java:587)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
              > ssionImpl.java:120)
              > at
              > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
              > entImpl.java:78)
              > at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
              > at
              > com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
              > rkflowPackageInfoDAO.java:892)
              > at
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              > dByName(WorkflowPackageBean.java:373)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              > indByName(wfpackage_tzapts_Impl.java:335)
              > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              > at
              > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              > java:39)
              > at
              > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              > sorImpl.java:25)
              > at java.lang.reflect.Method.invoke(Method.java:324)
              > at
              > weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              > (BeanManagedPersistenceManager.java:152)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1784)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1756)
              > at
              > weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              > findByName(wfpackage_tzapts_HomeImpl.java:190)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              > WLSkel.invoke(Unknown Source)
              > at
              > weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              > at
              > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              > ef.java:108)
              > at
              > weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              > at
              > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              > dSubject.java:363)
              > at
              > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              > 147)
              > at
              > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              > a:415)
              > at
              > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              > .java:30)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              >
              >
              > at
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
              > dByName(WorkflowPackageBean.java:383)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
              > indByName(wfpackage_tzapts_Impl.java:335)
              > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              > at
              > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
              > java:39)
              > at
              > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
              > sorImpl.java:25)
              > at java.lang.reflect.Method.invoke(Method.java:324)
              > at
              > weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
              > (BeanManagedPersistenceManager.java:152)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1784)
              > at
              > weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
              > anager.java:1756)
              > at
              > weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              > findByName(wfpackage_tzapts_HomeImpl.java:190)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              > WLSkel.invoke(Unknown Source)
              > at
              > weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              > at
              > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              > ef.java:108)
              > at
              > weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              > at
              > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              > dSubject.java:363)
              > at
              > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              > 147)
              > at
              > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              > a:415)
              > at
              > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              > .java:30)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              >
              >
              > ##########################################################################################
              > i hope to get more helpful information,so i turn on weblogic.debug
              > switch with
              > "-Dweblogic.Debug=weblogic.JDBCConn,weblogic.JDBCSQL,weblogic.JTA2PC,weblogic.JTAXA,weblogic.JTAJDBC"
              > the below is debug output, i dont know wht always inproper transaction
              > state.
              >
              >
              > ##########################################################################################
              >
              >
              > <Mar 14, 2006 11:11:58 AM GMT+08:00> <Info> <WebLogicServer>
              > <BEA-000213> <Addin
              > g address: 129.184.13.228 to licensed client list>
              > <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <java.lang.Excep
              > tion: TRACE: [ExecuteThread: '24' for queue:
              > 'weblogic.kernel.Default']ServerTM[
              > ServerCoordinatorDescriptor=(CoordinatorURL=weblogic81sp4_test+129.184.13.228:80
              > 01+Intetest+t3+,
              > XAResources={},NonXAResources={})].setTransactionTimeout(120).
              > at
              > weblogic.transaction.internal.TraceHelper.traceStack(TraceHelper.java
              > :28)
              > at
              > weblogic.transaction.internal.TransactionManagerImpl.setTransactionTi
              > meout(TransactionManagerImpl.java:415)
              > at
              > weblogic.ejb20.internal.MethodDescriptor.startTransaction(MethodDescr
              > iptor.java:252)
              > at
              > weblogic.ejb20.internal.MethodDescriptor.getInvokeTx(MethodDescriptor
              > .java:377)
              > at
              > weblogic.ejb20.internal.EJBRuntimeUtils.createWrapWithTxs(EJBRuntimeU
              > tils.java:324)
              > at
              > weblogic.ejb20.internal.BaseEJBHome.preHomeInvoke(BaseEJBHome.java:35
              > 8)
              > at
              > weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:631)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
              > findByName(wfpackage_tzapts_HomeImpl.java:190)
              > at
              > com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
              > WLSkel.invoke(Unknown Source)
              > at
              > weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
              > at
              > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
              > ef.java:108)
              > at
              > weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
              > at
              > weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
              > dSubject.java:363)
              > at
              > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
              > 147)
              > at
              > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
              > a:415)
              > at
              > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
              > .java:30)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
              >
              > <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <Xid=BEA1-0002D2
              > 21FAAB(2036170959),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,secon
              > ds since begin=0,seconds left=-1142305918) wakeUpAfterSeconds(120)>
              > <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <BEA1-0002D221FA
              > AB: null: init(t/o=120,ttl=120)>
              > <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <BEA1-0002D221FA
              > AB: null: setProperty: weblogic.transaction.name=[EJB
              > com.bull.flexflow.workflow
              > .workflowpackage.WorkflowPackageBean.findByName(java.lang.String)]>
              > <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <BEA1-0002D221FA
              > AB: null: setName: [EJB
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPacka
              > geBean.findByName(java.lang.String)]>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              > com.b
              > ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              > tring)]- -pool:flexstudio.xa.ds- > DataSource.getConnection>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              > com.b
              > ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              > tring)]- -pool:flexstudio.xa.ds- >
              > DataSource.refreshXAConnAndEnlist(inXAConn:nu
              > ll, conn:null, needsTxCtx:true)>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              > com.b
              > ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              > tring)]- -pool:flexstudio.xa.ds- > DataSource.getXAConnFromPool
              > waitSecs:117>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              > com.b
              > ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              > tring)]- -pool:flexstudio.xa.ds- <
              > DataSource.getXAConnFromPool:[EDBC-XAConnecti
              > on[5], owner=null, rmConn=EDBC-XAVirtConn[6]], Num XAConn:1>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <BEA1-0002D221FA
              > AB: [EJB
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
              > me(java.lang.String)]: setLocalProperty:
              > weblogic.jdbc.jta.flexstudio.xa.ds=webl
              > ogic.jdbc.wrapper.TxInfo@1aaa2594>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
              > com.b
              > ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
              > tring)]- -pool:flexstudio.xa.ds- XA conn assoc with
              > tx:[EDBC-XAConnection[5], ow
              > ner=flexstudio.xa.ds, rmConn=EDBC-XAVirtConn[6]]>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <BEA1-0002D221FA
              > AB: [EJB
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
              > me(java.lang.String)]: enlistResource:flexstudio.xa.ds>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <ResourceDescrip
              > tor[flexstudio.xa.ds]: getOrCreate gets rd: name = flexstudio.xa.ds
              > resourceType = 2
              > registered = true
              > scUrls = weblogic81sp4_test+129.184.13.228:8001+Intetest+t3+
              > xar = flexstudio.xa.ds
              > healthy = true
              > lastAliveTimeMillis = -1
              > numActiveRequests = 0
              >
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <BEA1-0002D221FA
              > AB: [EJB
              > com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
              > me(java.lang.String)]: setCoordinatorURL
              > =>ServerCoordinatorDescriptor=(Coordina
              > torURL=weblogic81sp4_test+129.184.13.228:8001+Intetest+t3+,
              > XAResources={},NonXA
              > Resources={})>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <BEA1-0002D221FA
              > AB6F1049B9: enlist flexstudio.xa.ds, beforeState=new>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <BEA1-0002D221FA
              > AB6F1049B9: XA.start(rm=flexstudio.xa.ds, xar=flexstudio.xa.ds,
              > flags=TMNOFLAGS)
              >
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <ResourceDescrip
              > tor[flexstudio.xa.ds]: Resource 'flexstudio.xa.ds'
              > setTransactionTimeout(120) no
              > t called. callSetTransactionTimeout=false,
              > supportsSetTransactionTimeout=true>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
              > <ResourceDescrip
              > tor[flexstudio.xa.ds]: startResourceUse, Number of active requests:1, last
              > alive
              > time:0 ms ago.>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
              > < -tx:null- -poo
              > l:flexstudio.xa.ds- > XAConnection.getXAResource,
              > xaConn:EDBC-XAConnection[5]>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
              > < -tx:null- -poo
              > l:flexstudio.xa.ds- < XAConnection.getXAResource,
              > xaRes:EDBC-XAConnection[5]>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
              > < -tx:null- -poo
              > l:flexstudio.xa.ds- >
              > XAResource.start(Xid:bea1-0002d221faab6f1049b9-666c6578737
              > 47564696f2e78612e6473, flags:TMNOFLAGS), xaRes:EDBC-XAConnection[5]>
              > <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
              > < -tx:null- -poo
              > l:flexstudio.xa.ds- < XA error: XAER_PROTO : Routine was invoked in an
              > inproper
              > context
              > javax.transaction.xa.XAException
              > at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
              > at web

  • Global transactions in OSB and EJB 2.1

    Hi,
    My team is working in a SOA service based on OSB 11g (11.1.1.5) using DB JCA Adapter and EJB 2.1 over WLS 10g(WLI environment). The logic of the service works in this way:
    1. A table in a database (XE) is polled by the DB Adapter which starts the service (1 row = 1 message).
    2. The message contains a collection of items to be inserted in another Oracle database.
         Once a message/row is picked, and after some steps (logging, validation,etc), there is a for..each action which extracts each item of the collection and executes a service callout action to a business service.
    3. This business service uses EJB protocol to call an EJB (2.1 + WLS Extensions). The EJB is deployed in another domain (WLS 10.3.0/10g and Oracle BEA drivers)  and only executes an store procedure with the parameters based on the message and inserts these values in a table.
    4. Once the for...each finishes, there is a call to another proxy service which marks the message/row as "processed" in the source table. This update is done via DB JCA also.
    5. In case of an error, the error handler of the proxy service calls the proxy service mentioned above to mark the row as "Failed" (in fact there is a retry mechanism, but it's not important for now).
    The service requires to work inside a global transaction. The main requirement is that the collection of items should be processed as "All or None", so basically we're using the options to manage the global transaction. However, the problem is that it's failing to rollback the whole insertion of items when an error is simulated. It only rolls back the last insertion/execution of SP.
    Additionally, the proxy service that should mark the row as FAILED, never updates this one, and the tables stay locked until we modify one of the store procedure in order to avoid the simulated error and commit the transaction.
    The EJB uses WLS extensions with the annotations to "transaction required". The proxy service has the option transaction required also. The database drivers are all XA and we're testing against Oracle11g XE (however, the EJB destiny will be Oracle 8i in production).
    We have tried different alternatives, splitting the logic in different proxies (Proxy services for JCA, Proxy with For Each for EJB, etc), isolating the specific part with the EJB call, without success.
    The security between domains is set as Global Trust.
    Do you have any idea, example or suggestion about this problem? Is EJB really supported in Global Transactions and XA?
    Thanks in advance.

    where do you find the J2EE Connector 1.5 compliant
    Resource Adapter?I wrote the compliant adapter myself. Hey Steve,
    Were you able to find a solution for this problem. I am struggling with the same problem with the RI Beta implementation.
    Sandeep

  • TMS and Global Transactions

    Hello Friends,
    I have a doubt on TMS and Global Transaction.
    Can tpbegin(), tpcommit(), tpabort() calls succeed when there is
    no TMS server running for the Tuxedo Server group.
    If yes, who manages the Global Transaction in this case?
    Thanks in advance for ur time.
    regards
    MS

    When you compile a Tuxedo server, there is ALWAYS a TMS compiled in. If
    you look at $TUXDIR/udataobj/RM, you will fine a line similar to:
    NONE:tmnull_switch:
    When you do not use the -r option, or use -r NONE, the tmnull_switch is
    compiled into your server. This is a bunch of do nothing code to occupy
    the function slots that otherwise would be used by a real XA
    connection. For example, if you had put
    -r Oracle_XA
    (also see the RM file) the switch xaosw is compiled into your server.
    So the first thing I want point out is that a server ALWAYS has a TMS
    switch compiled, even if it is a NULL switch.
    Second item. This null switch does have a null transaction management
    server, called TMS ($TUXDIR/bin/) This is the entry for the TMSNAME
    field of a Service GROUP.
    You might have an entry such as
    APPGRP GRPNO=10 TMSNAME=TMS
    DBGRP GRPNO=11 TMSNAME=TMSORACLE OPENINFO="......"
    Now, I can have XA transactions initiated by servers in APPGRP, and have
    servers in DBGRP participate in the same global transaction. (but watch
    your performance)
    So, to answer Manoj's question, No, they don't succeed if there is no
    TMS. However, all you need is to add TMSNAME=TMS and have compiled the
    servers with -r NONE (better to be explicit than implicit) and they will
    work.
    Hope this clears up some things.
    Manoj SASIDHARAN wrote:
    Hello Friends,
    I have a doubt on TMS and Global Transaction.
    Can tpbegin(), tpcommit(), tpabort() calls succeed when there is
    no TMS server running for the Tuxedo Server group.
    If yes, who manages the Global Transaction in this case?
    Thanks in advance for ur time.
    regards
    MS--
    Brian Douglass
    Transaction Processing Solutions, Inc.
    8555 W. Sahara
    Suite 112
    Las Vegas, NV 89117
    Voice: 702-254-5485
    Fax: 702-254-9449
    e-mail: [email protected]

  • JDO with container (J2EE) managed DataSource

    Hello,
    I would like to use application server managed DataSource with JDO and
    would love to find a piece of documentation/link that would take me
    through it.
    In absence of such a document, any advice/idea will be appreciated.
    Based on the bits and pieces that I have already discovered, I assume that:
    when binding the PersistanceManagerFactory to JNDI, I should use
    DataSource ds = (DataSource)ic.lookup("jdbc/myDataSourceName");
    pmf.setConnectionFactory(ds);
    ... to set the datasource (instead of ConnectionFactory). Is that it?
    I found some older topics (July?) that mentioned that this is NOT
    officially supported. Quote:
    <i>A couple of warnings, though:
    * The use of external datasources is untested.
    * If using the datasource within an appserver, the Connections from it
    should not be automatically committed/rolled back with the completion of
    the
    global transaction. Kodo performs its own transaction management on the
    Connections it uses. In future releases we'll be able to handle
    Connections
    that are controlled by the appserver.</i>
    Is it still the case now or is this the official way to integrate
    application server (Websphere 5.0) with JDO now? Assuming that Kodo was
    configured to integrate with TransactionManager of the application server,
    is there a reason not to let the application server control the
    transactions? Are we going to run into problems if we do it?
    Thank you,
    Petr

    Hi Ben,
    Thank you for your advice, that is an experience that it is good to know
    about.
    In terms of forcing (configuring) Kodo to use the existing data source
    from application server, how did you do it?
    Based on the structure bellow, I would assume that you used the Java
    Connector option. Other then the experience you mentioned, are you happy
    camper?
    Thank you,
    Petr
    Ben Eng wrote:
    Here is my experience using Kodo with BEA WebLogic Server. Your mileage may
    vary with IBM WebSphere.
    When using a JDBC driver in the application server\'s classpath (which would
    be the case with a managed DataSource), the JDBC driver does not have access
    to your J2EE application\'s classes for deserializing them from BLOBs.
    Therefore, the Kodo serialized BLOB mapping would not work in this
    configuration. You will need to rely solely on more sophisticated O/R
    mappings.
    Kodo integrates well with the application servers managed Transactions, when
    packaged as a JCA resource adapter. With BEA WLS, I found that I had to
    repackage things as follows:
    myApp.ear
    |
    +-application.xml
    +-jakarta-commons-logging-1.0.2.jar
    +-jdbc2_0-stdext.jar
    +-jdo1_0.jar
    +-kodo-jdo-runtime.jar
    +-serp.jar
    +-mysql-connector-java-3.0.3-beta-bin.jar  (or whatever your JDBC
    driver is)
    |
    +-kodo.rar
    | +-META-INF
    | +-MANIFEST.MF
    | +-ra.xml
    | +-weblogic-ra.xml
    +-myEJB.jar
    +-META-INF
    | +-MANIFEST.MF
    +-myEJB.class
    Both the kodo.rar and myEJB.jar MANIFEST.MF looks like this:
    Manifest-Version: 1.0
    Class-Path: serp.jar jdo1_0.jar kodo-jdo-runtime.jar
    jakarta-commons-logging-1.0.2.jar jdbc2_0-stdext.jar
    mysql-connector-java-3.0.3-beta-bin.jar
    When the JDBC driver is packaged with the application EAR like this,
    deserialization of BLOB also works fine. If you do have the JDBC driver in
    the application server\'s classpath, it will be loaded from there first and
    deserialization of BLOBs will break. Unfortunately, this is limitation is
    terribly limiting, because CMP EntityBeans and JMS destinations that require
    persistent storage will need to use managed DataSources. Probably the best
    compromise is to have the JDBC driver in the application server\'s classpath,
    not in the application EAR, and live without BLOB mappings (not a big loss
    in real world applications).
    Ben
    \"Petr Bulanek\" <[email protected]> wrote in message
    news:[email protected]...
    Hello,
    I would like to use application server managed DataSource with JDO and
    would love to find a piece of documentation/link that would take me
    through it.
    In absence of such a document, any advice/idea will be appreciated.
    Based on the bits and pieces that I have already discovered, I assumethat:
    when binding the PersistanceManagerFactory to JNDI, I should use
    DataSource ds = (DataSource)ic.lookup(\"jdbc/myDataSourceName\");
    pmf.setConnectionFactory(ds);
    .. to set the datasource (instead of ConnectionFactory). Is that it?
    I found some older topics (July?) that mentioned that this is NOT
    officially supported. Quote:
    <i>A couple of warnings, though:
    * The use of external datasources is untested.
    * If using the datasource within an appserver, the Connections from it
    should not be automatically committed/rolled back with the completion of
    the
    global transaction. Kodo performs its own transaction management on the
    Connections it uses. In future releases we\'ll be able to handle
    Connections
    that are controlled by the appserver.</i>
    Is it still the case now or is this the official way to integrate
    application server (Websphere 5.0) with JDO now? Assuming that Kodo was
    configured to integrate with TransactionManager of the application server,
    is there a reason not to let the application server control the
    transactions? Are we going to run into problems if we do it?
    Thank you,
    Petr

  • Advise on using DBMS_XA with multiple branches under one global transaction

    Dear all
    I need some advise on using DBMS_XA from PL/SQL with tightly coupled multiple branches under one global transaction. Basically, I've successfully written some PL/SQL code that in 3 different sessions attaches to 3 different branches of one global transaction and before ending each branch they can see each others uncommitted data. So far so good.
    However, I'm not sure I completely understand how each branch must call xa_end, xa_prepare and xa_commit correctly using two phase commit and my calls result in errors like:
    ORA-24767: transaction branch prepare returns read-only (XA error code 3 = Transaction was read-only and has been committed)
    ORA-24756: transaction does not exist (XA error code -4 = XID is not valid)
    ORA-02051: another session or branch in same transaction failed or finalized
    This is the structure of my programs (3 SQL*Plus sessions):
    main: Uses xid 123|0 (branch 0 of global transaction 123). This should be the coordinator that commits using two phase commit across the 3 branches
    m1.xa_start tmnoflags
    m2.DML
    m3.Wait for thread A + B to manually be started and run xa_end
    m4.xa_end tmsuccess
    m5.xa_prepare
    m6.xa_commit false
    thread A: Uses xid 123|A (branch A of global transaction 123)
    a1.xa_start tmnoflags
    a2.DML -- thread A can see main and thread B's data
    a3.xa_end tmsuccess
    a4.xa_prepare -- required?
    a5.Should we also call xa_commit false?
    thread B: Uses xid 123|B (branch B of global transaction 123)
    b1.xa_start tmnoflags
    b2.DML -- thread B can see main and thread A's data
    b3.xa_end tmsuccess
    b4.xa_prepare -- required?
    b5.Should we also call xa_commit false?
    The failing steps are:
    m5
    m6
    a4
    a5
    b4
    b5
    Before starting calling xa_end I see 3 rows in V$GLOBAL_TRANSACTION, eg (hex 7B = decimal 123):
    FORMATID GLOBALID BRANCHID BRANCHES REFCOUNT PREPARECOUNT STATE FLAGS COUPLING
    203348753 0000007B 00000000000000000000000000000000 3 3 0 ACTIVE 0 TIGHTLY COUPLED
    203348753 0000007B 0000000000000000000000000000000A 3 3 0 ACTIVE 0 TIGHTLY COUPLED
    203348753 0000007B 0000000000000000000000000000000B 3 3 0 ACTIVE 0 TIGHTLY COUPLED
    Thanks a lot in advance.
    Cheers
    Finn

    OK, I've figured it out. This is poorly documented as it's not well explained how to handle the various return codes. Turns out that all but the last xa_prepare calls return dbms_xa.xa_rdonly (tightly coupled branches are combined -- "read only" optimization), the last one returns dbms_xa.xa_ok and this is when you should call xa_commit.
    Now my next problem is that DBMS_XA doesn't work from within jobs (DBMS_JOB and DBMS_SCHEDULER), which makes it very difficult to use DBMS_XA. My purpose of using DBMS_XA is to coordinate work across multiple sessions in one transaction but if I can't easily create the multiple sessions, I'm stuck.
    When called from a job, xa_start throws:
    ORA-24789: start not allowed in recursive call
    on Oracle 11.2. In Oracle 11.1 it works, but xa_end fails with
    ORA-25352: no current transaction
    so I guess in fact the xa_start call didn't really work either, even though it returned tm_ok.
    I'm now trying to find a workaround on how to use DBMS_XA from within jobs, please comment if you have any suggestions. Or if you have any suggestions on other means of establishing the concurrent sessions (I wouldn't like to resort to external programs that need username/password to connect as password management would be a security issue).
    Thanks in advance.
    Cheers
    Finn

  • 2 Phase Commit Global Transaction resolution question.

    Hi All,
    I hope this is the right place to ask this question.
    I'm trying to figure out what generally happens after the JTA AbandonTimeout occurs.
    Here is the scenario.
    1. Transaction Manager sends Commit to Resource Managers 1 and 2.
    2. Resource Manager 1 receives and processes commit.  Resource Manager 2 doesn't receive commit.
    3. Resource Manager 1 returns acknowledgement.
    4. Transaction Manager times out and starts recovery process.
    5. Resource Manager 2 session times out and is set to in-doubt.
    6. Transaction Manager can never reconnect to Resource Manager 2, and the AbandonTimeout is reached.
    7. Transaction Manager abandons RM2 transaction.
    8. Does Transaction manager return an error for global transaction?
    I'm guessing the application the Transaction Manager is working for has its own timeouts which would most likely be a smaller value than the abandon timeout.  So the transaction would most likely timeout.  I'm just trying to make sure that the Global Transaction is not sent back as complete at a later time if the abandon timeout is reached.
    Any Thoughts?
    Thanks,
    Matt

    Petr-
    In article <avflf9$ccu$[email protected]>, Petr Bulanek wrote:
    Hi Marc,
    Well, what does it really mean that \'Kodo will not respect the
    semantics of the 2-phase-commit protocol\'?Are you saying that Kodo may commit my changes even if the other datastore
    decides to roll the transaction back at the last moment?
    That if Kodo has difficulties to commit, it would not roolback the global
    transaction and as a result the other datastores will commit?You are correct: we currently do not do anything special for 2 phase
    commit at all.
    I mean, this is quite important and would like to know exactly what to
    expect so I can work around it.
    Thank you,
    Petr
    P.S.
    I \'think\' I saw the plan to fix this in 2.5.x. What is the planned
    release date?It is in the milestone for 2.5. We can't make any committments on its
    release date, but it will hopefully be out within 2 months.
    Marc Prud\'hommeaux wrote:
    Petr-
    You can integrate Kodo\'s JDO transactions into the Application Server\'s
    global transaction (which might also commit multiple other
    transactions). The only issue is that Kodo will not respect the
    semantics of the 2-phase-commit protocol.
    We expect to have this issue resolved soon.
    In article <avdri3$f2o$[email protected]>, Petr Bulanek wrote:
    I have noticed that there is open bug (211) that refers to 2 phase commit
    and I just curious what the exact problem is.
    Does that imply that the current version (2.4) does not allow 2 phase
    commit?
    Let\'s say I need to integrate JDO into global transaction (managed by App
    server) and I may need during that transaction update multiple databases.
    It could be implemented via JDO (multiple PMFs) or it could be a
    combination of JDO and JDBC/EJB happening during the same transaction.
    Am I likely to hit a problem if I do that?
    Thank you,
    Petr
    Marc Prud\'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Management of Global Employment

    I have set up every thing OK in system for Management of Global Employment, and i could run the flow of actions like Expatriation Planning, Activation and all other actions related with.
    MY question is, when ever i am trying to save IT0706 i am getting error message for the "HOME" and "HOST" subtypes, i am sure that if i am able to trace one error of one subtype , i would be able to trace the other subtype error. So currently i am focusing only on one subtype.
    Whenever i try to save IT0706 it throw error message and asks me to maintain the tables "T76MGE_ACPI" and "T76MGE_BCPI" when actually go to SM30 and try to maintain these tables, (i could notice that these tables are only allowed to maintain through SM30 and not through IMG)
    The input values for these two tables are the drop down comes from navigation path "Management of Global Employees > Compensation Package > Compensation Package Items > Define Compensation Package Items"
    when i actully go and see, i DID HAVE my values maintained in this table, but they dont default in above mentioned two tables. "T76MGE_ACPI" and "T76MGE_BCPI" where i am doing mistake is clue less to me and neex your help. - appreciate any insight to it.
    If i could maintain IT0706 without errors, i am done with my configuration

    Not much help, i have already gone through this., I got one more clue as i dig more into system, i should be able to maintain the Table T76MGE_CPI. This table also again not editable either through SM30 or IMG node (still figuring out)
    So you may look at the direction of the ways to maintain this table.
    Thanks for your look

  • Doubts in Management of global employees

    Dear Experts,
    im trying to configure Global employment in my system.
    Here im having some doubts in  the execution of Global employment.
    the doubts are...1.Shall we need to configure seperate actions for the management of global employees and what are the specific infotypes for the actions.
    2.How to activate the global employment in the system.
    Kindly share your valuable advices.
    Regards,
    V Sai.

    Hope it helps
    Payroll for Global Employees This component is not released for all customers. For more information, read SAP note 518503.
    You use this component to run payroll for your global employees.
    Implementation Considerations:
    To implement this component you must activate it in your system. Access Customizing for Payroll and choose Payroll International --> Payroll for Global Employees, and perform the IMG activity Activate Payroll for Global Employees. You make other settings for this component in the same section.
    Integration:
    You can implement Payroll for Global Employees irrespective of whether you administer your global employees with the component Management of Global Employees or in some other way in the system.
    Features:
    For Payroll for Global Employees payroll is usually run in two countries. There is data exchange between two payroll systems. Data is exchanged in the form of wage types.
    u2022 The sending payroll creates the wage types and stores them in table RT_GP (Results Table: Payroll for Global Employees).
    u2022 The receiving payroll imports the wage types from the sending payroll and processes them further.
    Use function XGP (Payroll for Global Employees) to transfer wage types from the sending payroll to the receiving payroll and to process them within the receiving payroll.
    All features that are included in the appropriate Payroll country version are available in sending and receiving payroll. For more information, see Payroll country versions in the SAP Library under Human Resources --> Payroll --> Payroll <Country>.
    Constraints:
    At present you can only transfer wage types from the sending to the receiving payroll. Data exchange in two directions is not possible.
    Example
    Employees in your German firm are usually seconded to your subsidiary company in the USA for three to five years. The remuneration of these global employees is calculated in the Payroll of the US company. Payment is also effected in the USA. However, the employee also pays social insurance contributions in Germany during his overseas assignment. These social insurance contributions are calculated in the German payroll system, and transferred to the American payroll system. They are settled there with the remuneration of the employee. In this case the German payroll is the sending payroll system, and the American payroll is the receiving payroll system.
    Execute the relevant personnel action or choose Human Resources > Personnel Management > Administration > HR Master Data > Maintain.
    2. If you have chosen to maintain the infotype manually, enter the global employeeu2019s personnel number and choose infotype Global Assignment Details (0710).
    3. Click Create.
    4. Enter the data with regard to the global assignment and check their consistency. Note that the system automatically determines the end date of the assignment on the basis of the duration you have entered.
    5. Enter the applicable employment percentage in the host country.
    6. Enter the current personnel number the global employee is assigned to in the host country. For more information on how to use these fields, see the F1 documentation.
    7. Click Save.
    Maintaining the Global Assignment Status
    In this step, you maintain the current status of the global assignment according to HR processor.
    Procedure
    1. Execute the relevant personnel action or choose Human Resources > Personnel Management > Administration > HR Master Data > Maintain.
    2. If you have chosen to maintain the infotype manually, enter the global employeeu2019s personnel number and choose infotype Global Assignment Status (0715).
    3. Click Create.
    4. Select the applicable assignment status.
    5. Click Save.
    Copied from the previous Threads

  • Lock between transaction branches of a global transaction

    Hi,
    I have an Oracle Database v.10.1.0.4, on which there are two schemas (A and B).
    A table on schema A has a reference key on a table on schema B.
    Now, i have a j2ee application that uses two distinct connection to performs inserts on both schemas within the same global transaction (using a JTATransactionManager), but i'm experiencing a lock in the following situation:
    1 - On connection for schema B, a new ROW is inserted
    2 - On connection for schema A, a new ROW is inserted referencing the new row in schema B, but the query is locked by the insert on schema B.
    It is like the two transacions are loosely coupled and not tightly coupled as I would expect for distributed transaction on the same oracle instance (or at least they are not part of a global transaction and are treated as two distinct transaction).
    Someone know if oracle jdbc drivers handle tightly coupled transactions for transaction branches on the same oracle instance that are part of the same global transaction?
    Thanks,
    Luca De Petrillo

    http://www.myoracleguide.com/s/managelocks.htm

  • Global transaction problem with JDriver/Oracle and Oracle XA

    We are haveing serious problems with Container Managed Transactions on Bea 6.1
    and Oracle with EJB having set "Required" for all methods. We have tried in vain
    to make it work with JDriver as well as OracleXAClient. Both fail at sometime
    during the execution throwing "Not called in cotext of global transaction" (with
    JDriver) OR "XAER_PROTO : Routine was invoked in an
    inproper context start() failed on resource 'OracleXAPool'" (this one with oracle
    XA).
    1.) Weblogic JDriver-XA:
    DatabaseMetaData metaData = dataSource.getJDBCConnection.getMetaData();
    ResultSet resultSet = metaData.getTables(null, null, tableName.toUpperCase(),
    new String[]{"TABLE"});
    This fails immmediately saying that it was not called from global transaction.
    Interesting thing is that with OracleXA, it doesnt say this exception at this
    check point.
    2) Oracle XA
    Okie, we couldnot read through the CLOB using it so for reading CLOB, we used
    direct jdbc connection and then did away with it. Now all next sql queries were
    executed against oracle pool using XA data source with OracleXAClient. But at
    some point we again ran into the problem "XAER_PROTO : Routine was invoked in
    an
    inproper context start() failed on resource 'OracleXAPool'"
    3 Oracle Thin Driver
    everything always works with it.

    AFAIR this issue was resoved by moving tx opreations out from non-tx
    methods.
    Regards,
    Slava
    "Apurb Kumar" <[email protected]> wrote in message
    news:[email protected]...
    Jawad,
    It would be nice if you can post the full stack trace error message. Didyou try moving to
    the latest service pack (sp2) for WLS6.1.
    Thanks,
    Jawad Mahmood wrote:
    Yes we had correctly set TXDataSource and let it to point to the right
    connection
    pool each time and it worked well with oracle thin driver but not whenwe switched
    the pool to JDriver or OracleXAClient. Note that we could aways confirmthat pool
    was successfully created alongwith we could retrieve connection from itvia TXDatSource,
    things gave problem after we attempted to do what i had mentioned in mylast posting.
    >>
    Also with JBoss 2.4.4 things work pretty well. So couldnt be our codeproblem.
    "Slava Imeshev" <[email protected]> wrote:
    Jawad,
    Did you set up TxDataSource?
    Regards,
    Slava Imeshev
    "Jawad Mahmood" <[email protected]> wrote in message
    news:[email protected]...
    We are haveing serious problems with Container Managed Transactionson
    Bea 6.1
    and Oracle with EJB having set "Required" for all methods. We havetried
    in vain
    to make it work with JDriver as well as OracleXAClient. Both fail atsometime
    during the execution throwing "Not called in cotext of global
    transaction"
    (with
    JDriver) OR "XAER_PROTO : Routine was invoked in an
    inproper context start() failed on resource 'OracleXAPool'" (this onewith
    oracle
    XA).
    1.) Weblogic JDriver-XA:
    DatabaseMetaData _metaData =
    _dataSource.getJDBCConnection.getMetaData();
    ResultSet resultSet = metaData.getTables(null, null,tableName.toUpperCase(),
    new String[]{"TABLE"});
    This fails immmediately saying that it was not called from globaltransaction.
    Interesting thing is that with OracleXA, it doesnt say this exceptionat
    this
    check point.
    2) Oracle XA
    Okie, we couldnot read through the CLOB using it so for reading CLOB,we
    used
    direct jdbc connection and then did away with it. Now all next sqlqueries
    were
    executed against oracle pool using XA data source with
    OracleXAClient.
    But
    at
    some point we again ran into the problem "XAER_PROTO : Routine wasinvoked
    in
    an
    inproper context start() failed on resource 'OracleXAPool'"
    3 Oracle Thin Driver
    everything always works with it.
    Apurb Kumar

  • How to configure global transaction wthin Oracle AS JMS and Oracle JMS

    How to configure global transaction if I take a message from Oracle JMS(AQ) and send it to the Oracle JMS?

    Which version of OC4J are you working on?
    In OC4J 10.1.3.x, presume your OC4J JMS listens messages via MDB which uses a resource adapter as a message listener. The resouce adaper could be the generic JMS adapter deployed in OC4J as the default.
    Resource adapter configuration to support MDBs is included in the standard ra.xml file, which lists the message listener types that the resource adapter supports.
    The MDB developer or deployer configures the MDB in the ejb-jar.xml file, through a <message-driven> element.
    In addition to above, configuration in the ejb-jar.xml file specifies whether an MDB uses transactions.
    1) The <transaction-type> subelement of <message-driven> in ejb-jar.xml has a value of Container, and the <trans-attribute> subelement of <container-transaction> (under the <assembly-descriptor> element) has a value of Required. In this circumstance, if there is an imported transaction, then message delivery and related work are performed within that transaction. If there is no imported transaction, OC4J creates a transaction, and message delivery and related work are performed within that transaction.
    2) The <transaction-type> subelement of <message-driven> in ejb-jar.xml has a value of Bean. In this circumstance, the MDB manages the transaction. If a transaction is imported, OC4J will suspend it before the message delivery method call to the MDB, in order to avoid conflict.
    Message delivery is not transacted if the <transaction-type> subelement of <message-driven> in ejb-jar.xml has a value of Container, but the <trans-attribute> element has a value of NotSupported. If there is an imported transaction in this circumstance, OC4J will suspend the transaction before the message delivery method call to the MDB.
    Details could be found from OC4J Resource Adapter Guide.

  • The resource manager is doing work outside a global transaction

    I use Orable 8.1.7.4 with Sun Java Application Server 7.0.0_04. The XA data source I use is oracle.jdbc.xa.client.OracleXADataSource.
    Oracle JDBC driver version is 10.1.0.2.0.
    I have an J2EE application with 2 EJB modules. Each EJB module works use own ConnectionPool.
    All Entity beans are CMP, CMT.
    All methods have transactional attribute REQUIRED.
    When I work with beans from single EJB module only, all works fine.
    When I try to call session bean method from a session bean from ANOTHER EJB module - an exception will be thrown:
    WARNING: JTS5041: The resource manager is doing work outside a global transaction
    oracle.jdbc.xa.OracleXAException
    Anyone got any idea?

    I remember having exact same problem with 9.2 drivers, the problem got fixed with 9.2.0.5 drivers -- perhaps Oracle hasn't ported the same fix to 10g drivers. As a workaround try creating non-XA datasource to avoid the exceptions.

  • MDB Container Managed Transaction and Log4J

    Hi,
    I'm programming and MDB that reads and updates a database then sends out an HTTP Post and logs using log4j. I've read that when an MDB is configured as CMT or container managed transaction and the OnMessage method executes without errors, the transaction is implicitly commited. You can rollback the transaction by explicitly calling setRollbackOnly() or when a RuntimeException has been thrown. My worry is that after I have sent out an HTTP POST (a transaction has been completed) I would have to log a transaction completion using log4j. My problems is if log4j throws a RuntimeException thereby rolling back my transaction which shouldn't be the case. What I have done is to catch all Exceptions (and swallow them) whenever I log using log4j after I have sent out an HTTP POST succesfully (since my transaction should be complete by then). Is this a correct workaround?
    Thanks :)

    Your approach is correct. If you think, Log4J might throw errors, swallow the exceptions and try not to roll back.

Maybe you are looking for

  • Reinstalling Mac OS X Software

    How i can reinstall mac os x software in my mac book  pro

  • Info box

    when I want more information about a podcast I hit the i for information. But then the box won't go away, or move. It continues to block the center of my screen. How do I get rid of it?

  • Deployer BEA - 149205

    Hello team, I upgrade my Weblogic server 10 to weblogic 12.1.1. and when I start my server this error appears: <Error> <Deployer> <BEA-149205> <Failed to initialize the application "XXXXXX" due to error weblogic.application.ModuleException: weblogic.

  • Fresh install of Ilustrator CS6 (64bit) can't load Drop Shadow.aip

    Today I upgraded from Design Standard CS5.0 to CS6, and as I am running Windows 7 64bit I chose the 64-bit version of Illustrator. Now every time I start Illustrator it reports "Error loading plugins. Drop Shadow.aip"; after clicking OK it starts nor

  • Cs6 image trace. want all bk to wt. wt to bk

    cs6 image trace of psd raster file to vector (preset black & white) comes out just GREAT. but i need all that cs6 output - all black must be white. all output white must be black. this probably is best: all black must be white. all white must be tran