Emulate Two-Phase Commit

HI,
<Mar 20, 2009 8:25:32 AM EDT> <Error> <HTTP> <BEA-101017> <[weblogic.servlet.internal.WebAppServletContext@1c1ac17 - appName
: 'lms-app', name: 'lms', context-path: '/lms'] Root cause of ServletException.
javax.ejb.EJBException: nested exception is: javax.ejb.TransactionRolledbackLocalException: EJB Exception: ; nested exception is: javax.ejb.EJBException:
nested exception is: javax.ejb.CreateException:
nested exception is: java.sql.SQLException: Connection has already been created in this tx context for pool named ejbDS. Illegal attempt to create connection from another pool: liveDS
I enabled Emulate Two-Phase Commit option for both the datasources ejbDS and liveDs. But still this error is coming in weblogic 9.2.2.
Can anybody suggest?
Thanks
Naveen

Hi Venki,
I have encountered the same issue for WebLogic 10.3.Speculating that you have fixed the error for 9.2, could you please provide your inputs on how to fix these kind of issues.
Thnks
Pavan

Similar Messages

  • Weblogic Two Phase commit

    Dears,
    we are facing slowness problem while migration application from weblogic 7 to weblogic 11g.
    Our Application use EJB 2.1 CMP and oracle database
    In web-logic 7 we use global transaction and emulate two phase commit .Our application works fine
    If we set global transaction as last logging resource or Emulate two phase commit in weblogic 11g we found so much slowness in the application.
    Kindly help me in this regard

    Hi,
              Jolt is just a Java client API for Tuxedo services. Typically, Jolt is
              used by a client to invoke a Tuxedo service. From what I could gather
              from your post, you are probably doing some JDBC work and then calling
              out to a Tuxedo service and want the work done with the JDBC/XA driver
              and the database work done by the Tuxedo service to be comitted/aborted
              transactionally? Is this correct?
              If so, then you probably want to look at the JET API (essentially Jolt
              without the need for a JSL/JSH) for invoking Tuxedo services directly
              (instead of through the JSH) from a WLE Java Server. It should be fully
              capable of doing what I have described above.
              Hope this helps,
              Robert
              Hwa Min Tan wrote:
              > I have read that the WLE 5.1 supports the Open XA standard for
              > two-phase (distributed) commits.
              > However, I have been unable to find any documentation / code
              > samples that demonstrates that JOLT is also able to perform
              > two-phase commits, even though its architecture is
              > inherently Tuxedo.
              > We'd like to use two-phase commit on two separate databases
              > (one connected by Jolt and another using the WLE JDBC/XA driver.
              >
              > Does Jolt support two-phase commit and the Open XA standard?
              >
              > Many thanks for your help,
              >
              > Hwa Min
              

  • Two phase commit and bean managed transactions

    To all the Transaction GURUS!
              Hi guys (-and gals).
              I've been doing J2EE for quite a while, but today was my first at
              XA-Transactions and Bean Managed Transactions.
              Why am I doing this?
              ====================
              Well I have to be able to controll the transactionalbehaviour of my
              bean
              during runtime, since some bean calls would cause a transactional
              overflow due to the stress they would cause to the system, whereas
              smaller bean calls need to run in one transaction.
              -> Therefore I need Bean Managed Transactions
              Since the bean does a call on two Database Connections it has to use a
              XA-Transaction.
              -> Therefore I need XA-Transactions.
              Abstract
              ========
              - I just can't get a User TransAction into the right Status it stays
              in 'STATUS_NO_TRANSACTION' all the time
              - Therefore the SQL Commands can be comitted 'java.sql.SQLException:
              Does not support SQL execution with no global transaction'
              - Therefore I can't do a rollback 'java.lang.IllegalStateException:
              Transaction does not exist'
              - Therefore I wrote this mail.
              I don't want to be a smart-"ass" writing such a detailed and indepth
              mail. I just would like to show that I tried, and would like to have
              some replies from you guys.
              Below are my configurations, code and logfiles.
              Thanx for taking your time and hope that the other people may learn
              something as well.
              cu
              Stefan
              Scenario
              ========
              used Software
              Bea Weblogic (WL) 6.0 SPx (not real sure which SP i have)
              Oracle 8.1.6 using the API-Version 8
              I configured the system as follows:
              (ofcourse I 'xxx'ed out all of the confidential data, sorry guys;-))
              excerpt from:
              config.xml
              <JDBCConnectionPool CapacityIncrement="5"
              DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="2"
              LoginDelaySeconds="1" MaxCapacity="5" Name="oraclePool"
              Properties="user=xxx;password=xxx;dll=ocijdbc8;protocol=thin"
              RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              TestTableName="languages" URL="jdbc:oracle:thin:@xxx:1521:xxx "/>
              <!-- Since this is our Main Datasource I would not like to use a XA
              Transaction due to performance Issues
              and the TxDataSource:
              -->
              <JDBCTxDataSource EnableTwoPhaseCommit="true"
              JNDIName="finstral.datasource.fbs" Name="finstral Content Datasource"
              PoolName="oraclePool" Targets="fbsserver"/>
              <!-- no comment required -I hope.
              Next comes the "special" Pool
              -->
              <JDBCConnectionPool CapacityIncrement="5"
              DriverName="weblogic.jdbc.oci.xa.XADataSource" InitialCapacity="1"
              LoginDelaySeconds="1" MaxCapacity="2" Name="oracleSecurityPool"
              Properties="user=xxx;password=xxx;server=xxx.xxx.xxx"
              RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              TestTableName="Users" SupportsLocalTransaction="true"/>
              <!-- Well since there can only be one none XARessourceManager involved
              in a 2PC
              (keyword: Two Phase Commit) I will have to use a XACapable Driver for
              the other
              Datasource. Due to all the bugs in the oracle.xxx driver. I'll be
              using the jdriver for oci.
              I activated 'SupportsLocalTransaction' hoping it would solve my
              problem - without effect. I just left in there now, since it made
              sense me. Not?
              Again the TxDataSource:
              -->
              <JDBCTxDataSource EnableTwoPhaseCommit="true"
              JNDIName="finstral.datasource.fbssecurity" Name="finstral Security
              Datasource" PoolName="oracleSecurityPool" Targets="fbsserver"/>
              <!-- The System starts right up and can locate the test tables and
              everything. So I think all of this stuff is working here -->
              ejb-jar.xml
              <ejb-jar>
                   <enterprise-beans>
                        <session>
                             <ejb-name>TPCTestBean</ejb-name>
              <home>de.sitewaerts.futuna.common.test.tpcbean.TPCHome</home>
              <remote>de.sitewaerts.futuna.common.test.tpcbean.TPC</remote>
              <ejb-class>de.sitewaerts.futuna.common.test.tpcbean.TPCBean</ejb-class>
                             <session-type>Stateless</session-type>
                             <transaction-type>Bean</transaction-type>
                        </session>
                   </enterprise-beans>
                   <assembly-descriptor/>
              </ejb-jar>
              <!-- Originally I had the assembly-descriptor full of transaction
              requirements. I thought since
              the bean is handling all of the transaction stuff itself, it might get
              confused by the 'container-transaction'
              properties, and deleted them. Do I need them anyway?-->
              weblogic-ejb-jar.xml
              <weblogic-ejb-jar>
                   <weblogic-enterprise-bean>
                        <ejb-name>TPCTestBean</ejb-name>
                        <stateless-session-descriptor/>
                        <jndi-name>finstral/ejb/test_tpc</jndi-name>
                   </weblogic-enterprise-bean>
              </weblogic-ejb-jar>
              <!-- Nothing I have to explain here -->
              BeanCode (from the implementingBeanClass:
              'de.sitewaerts.futuna.common.test.tpcbean.TPCBean')
              public void setupTables() throws RemoteException
              UserTransaction tx = getTransaction();
              //getTransaction calls: 'tx = sCtx.getUserTransaction()' and does
              some errorhandling
              log.info("Die Transaktion vor den Connections: "+tx.toString());
              //Sorry bout the German. You should get the Message though.
              log.info("Der Transaktionsstatus vor den Connections:
              "+transactionStatus(tx));
              Connection conSecurity = getConnection(DATASOURCE_SECURITY, tx);
              //gets a Connection via a DataSourceName from the JNDI tree
              Connection conContent = getConnection(DATASOURCE_CONTENT, tx);
              log.info("Die frische Connection conSecurity: "+conSecurity);
              log.info("Die frische Connection conContent: "+conContent);
              tearDownTable(conSecurity);
              //Does nothing special
              tearDownTable(conContent);
              log.info("Die Transaktion nach dem Teardown: "+tx.toString());
              log.info("Der Transaktionsstatus nach dem Teardown:
              "+transactionStatus(tx));
              Statement stmt = null;
              try
              stmt = conSecurity.createStatement();
              //Well its getting interesting now.....
              log.info("Die Transaktion vor dem createtable: "+tx.toString());
              log.info("Der Transaktionsstatus vor dem createtable:
              "+transactionStatus(tx));
              log.info("Die Connection conSecurity vor dem createtable:
              "+conSecurity);
              log.info("Die Connection conContent vor dem createtable:
              "+conContent);
              stmt.executeUpdate(CREATE_TABLE);
              //above is the row 91 -> throws: 'java.sql.SQLException: Does
              not support SQL execution with no global transaction'
              stmt.close();
              stmt = conContent.createStatement();
              stmt.executeUpdate(CREATE_TABLE);
              stmt.close();
              commitTransaction(tx);
              catch (SQLException sqle)
              log.error("Konnte kein table init machen", sqle);
              rollbackTransaction(tx);
              //The Code for this method is below
              throw new EJBException(sqle);
              finally
              closeConnection(conSecurity);
              closeConnection(conContent);
              protected void rollbackTransaction(UserTransaction tx)
              log.info("Der Transaktionsstatus vor dem Rollback:
              "+transactionStatus(tx));
              log.info("Die Transaktion vor dem Rollback: "+tx.toString());
              try
              tx.rollback();
              //above is row 200 -> throws: 'java.lang.IllegalStateException:
              Transaction does not exist'
              log.info("Der Transaktionsstatus nach dem Rollback:
              "+transactionStatus(tx));
              log.info("Die Transaktion nach dem Rollback: "+tx.toString());
              catch (Exception e)
              log.error("Konnte die Transaktion nicht backrollen.", e);
              throw new EJBException(e);
              Log Excerpt
              ===========
              INFO setupTables() (66) - Die Transaktion vor den Connections:
              [email protected]
              INFO setupTables() (67) - Der Transaktionsstatus vor den Connections:
              STATUS_NO_TRANSACTION
              INFO setupTables() (72) - Die frische Connection conSecurity:
              weblogic.jdbc.rmi.SerialConnection@7c6daa
              INFO setupTables() (73) - Die frische Connection conContent:
              weblogic.jdbc.rmi.SerialConnection@3b425
              INFO setupTables() (78) - Die Transaktion nach dem Teardown:
              [email protected]
              INFO setupTables() (79) - Der Transaktionsstatus nach dem Teardown:
              STATUS_NO_TRANSACTION
              INFO setupTables() (86) - Die Transaktion vor dem createtable:
              [email protected]
              INFO setupTables() (87) - Der Transaktionsstatus vor dem createtable:
              STATUS_NO_TRANSACTION
              INFO setupTables() (88) - Die Connection conSecurity vor dem
              createtable: weblogic.jdbc.rmi.SerialConnection@7c6daa
              INFO setupTables() (89) - Die Connection conContent vor dem
              createtable: weblogic.jdbc.rmi.SerialConnection@3b425
              ERROR setupTables() (101) - Konnte kein table init machen
              java.sql.SQLException: Does not support SQL execution with no global
              transaction
                   at
              weblogic.jdbc.oci.xa.XAConnection.beforeExecute(XAConnection.java:137)
                   at
              weblogic.jdbc.oci.xa.Statement.executeUpdate(Statement.java:112)
                   at weblogic.jdbc.jta.Statement.executeUpdate(Statement.java:185)
                   at
              weblogic.jdbc.rmi.internal.StatementImpl.executeUpdate(StatementImpl.jav
              a:42)
                   at
              weblogic.jdbc.rmi.SerialStatement.executeUpdate(SerialStatement.java:54)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBean.setupTables(TPCBean.jav
              a:91)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBeanImpl.setupTables(TPCBean
              Impl.java:130)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBeanEOImpl.setupTables(TPCBe
              anEOImpl.java:64)
                   at
              de.sitewaerts.futuna.common.test.TwoPhaseCommitUnitTest.setUp(TwoPhaseCo
              mmitUnitTest.java:51)
                   at
              org.apache.commons.cactus.AbstractTestCase.runBareServerTest(AbstractTes
              tCase.java:297)
                   at
              org.apache.commons.cactus.server.ServletTestCaller.callTestMethod(Servle
              tTestCaller.java:148)
                   at
              org.apache.commons.cactus.server.ServletTestCaller.doTest(ServletTestCal
              ler.java:199)
                   at
              org.apache.commons.cactus.server.ServletTestRedirector.doPost(ServletTes
              tRedirector.java:149)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
                   at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.
              java:213)
                   at
              weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl
              etContext.java:1265)
                   at
              weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.
              java:1631)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              INFO rollbackTransaction() (196) - Der Transaktionsstatus vor dem
              Rollback: STATUS_NO_TRANSACTION
              INFO rollbackTransaction() (197) - Die Transaktion vor dem Rollback:
              [email protected]
              ERROR rollbackTransaction() (206) - Konnte die Transaktion nicht
              backrollen.
              java.lang.IllegalStateException: Transaction does not exist
                   at
              weblogic.transaction.internal.TransactionManagerImpl.rollback(Transactio
              nManagerImpl.java:228)
                   at
              weblogic.transaction.internal.TransactionManagerImpl.rollback(Transactio
              nManagerImpl.java:222)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBean.rollbackTransaction(TPC
              Bean.java:200)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBean.setupTables(TPCBean.jav
              a:102)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBeanImpl.setupTables(TPCBean
              Impl.java:130)
                   at
              de.sitewaerts.futuna.common.test.tpcbean.TPCBeanEOImpl.setupTables(TPCBe
              anEOImpl.java:64)
                   at
              de.sitewaerts.futuna.common.test.TwoPhaseCommitUnitTest.setUp(TwoPhaseCo
              mmitUnitTest.java:51)
                   at
              org.apache.commons.cactus.AbstractTestCase.runBareServerTest(AbstractTes
              tCase.java:297)
                   at
              org.apache.commons.cactus.server.ServletTestCaller.callTestMethod(Servle
              tTestCaller.java:148)
                   at
              org.apache.commons.cactus.server.ServletTestCaller.doTest(ServletTestCal
              ler.java:199)
                   at
              org.apache.commons.cactus.server.ServletTestRedirector.doPost(ServletTes
              tRedirector.java:149)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
                   at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.
              java:213)
                   at
              weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl
              etContext.java:1265)
                   at
              weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.
              java:1631)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              CONCLUSION
              ==========
              I'm going nuts.
              I just don't get it.
              The transaction is the same. I don't change the Connection. I start
              the Transaction at the beginning before I do anything!
              Please guys help me out.
              Thx alot.
              Stefan "it's three o'clock in the morning, my girlfriend left me, and
              my only friend is that stupid linux pinguine" Siprell
              Software-Development
              <<<<<<<<<<<<<<<<<<<<<<<<<<<
              <sitewaerts> GmbH
              Hebelstraße 15
              D-76131 Karlsruhe
              Tel: +49 (721) 920 918 22
              Fax: +49 (721) 920 918 29
              http://www.sitewaerts.de
              >>>>>>>>>>>>>>>>>>>>>>>>>>>
              

    Hi Priscilla
              (did you ever see the movie ? :-))
              Well I moved away from the idea of using bean managed transaction. I'll
              be using Container Managed Transactions. To modify the
              transactionalbehaviour I'll write proxymethods which have certain
              different containermanaged transaction properties, but which all call
              the same private methods.
              But it works! Here is my experience:
              - I was doing a DDL statement: I was trying to create new Tables, which
              is a definite "no-go"
              - pay careful attention to:
              http://edocs.bea.com/wls/docs60/jta/trxejb.html#1051405
                        and
              http://edocs.bea.com/wls/docs60/jta/trxejb.html#1051741
              and use these Settings for the Pool, don't ask me why, but it took me
              hours to find it out by myself:
                   <JDBCConnectionPool CapacityIncrement="5"
              DriverName="weblogic.jdbc.oci.xa.XADataSource" InitialCapacity="1"
              LoginDelaySeconds="1" MaxCapacity="2" Name="oracleSecurityPool"
              Properties="user=xxx; password=xxx; server=xxx.xxx.xxx"
              RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              TestTableName="Users" SupportsLocalTransaction="true"/>
              where as the server (shown as: xxx.xxx.xxx) is the TNS Name of the
              Oracle Driver.
              It works great.
              Another thing you guys might want to do is write a simple StatelessSB
              which does JDBC calls and two different database Connections.
              Then write a UnitTest which calls this bean a couple hundred times (with
              the same transaction). Have one test do clean writes, and another which
              causes some SQL-Exception (too long Data Columns, or likewise).
              Always count the entries and see if everything worked out. We're using
              this SetupConstruction to test new combinations of AS(sorry Priscilla) /
              Database / Db-Drivers to have a "standard test".
              I know my two cents were uncalled for, but it might save you some
              time.....
              thanx for your help
              Stefan
              -----Ursprüngliche Nachricht-----
              Von: Priscilla Fung [mailto:[email protected]]
              Bereitgestellt: Donnerstag, 2. August 2001 21:42
              Bereitgestellt in: transaction
              Unterhaltung: Two phase commit and bean managed transactions
              Betreff: Re: Two phase commit and bean managed transactions
              Hi Stefan,
              Looks like you have not actually begun a transaction by calling
              UserTransaction.begin(),
              so your setupTables method is really executing with no transaction
              context.
              Priscilla
              Stefan Siprell <[email protected]> wrote:
              >To all the Transaction GURUS!
              >
              >Hi guys (-and gals).
              >I've been doing J2EE for quite a while, but today was my first at
              >XA-Transactions and Bean Managed Transactions.
              >
              >Why am I doing this?
              >====================
              >Well I have to be able to controll the transactionalbehaviour of my
              >bean
              >during runtime, since some bean calls would cause a transactional
              >overflow due to the stress they would cause to the system, whereas
              >smaller bean calls need to run in one transaction.
              >-> Therefore I need Bean Managed Transactions
              >Since the bean does a call on two Database Connections it has to use
              >a
              >XA-Transaction.
              >-> Therefore I need XA-Transactions.
              >
              >Abstract
              >========
              >- I just can't get a User TransAction into the right Status it stays
              >in 'STATUS_NO_TRANSACTION' all the time
              >- Therefore the SQL Commands can be comitted 'java.sql.SQLException:
              >Does not support SQL execution with no global transaction'
              >- Therefore I can't do a rollback 'java.lang.IllegalStateException:
              >Transaction does not exist'
              >- Therefore I wrote this mail.
              >
              >I don't want to be a smart-"ass" writing such a detailed and indepth
              >mail. I just would like to show that I tried, and would like to have
              >some replies from you guys.
              >
              >Below are my configurations, code and logfiles.
              >
              >Thanx for taking your time and hope that the other people may learn
              >something as well.
              >
              >cu
              >
              >Stefan
              >
              >
              >Scenario
              >========
              >
              >used Software
              >-------------
              >Bea Weblogic (WL) 6.0 SPx (not real sure which SP i have)
              >Oracle 8.1.6 using the API-Version 8
              >
              >
              >I configured the system as follows:
              >(ofcourse I 'xxx'ed out all of the confidential data, sorry guys;-))
              >excerpt from:
              >
              >config.xml
              >----------
              ><JDBCConnectionPool CapacityIncrement="5"
              >DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="2"
              >LoginDelaySeconds="1" MaxCapacity="5" Name="oraclePool"
              >Properties="user=xxx;password=xxx;dll=ocijdbc8;protocol=thin"
              >RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              >TestTableName="languages" URL="jdbc:oracle:thin:@xxx:1521:xxx "/>
              >
              ><!-- Since this is our Main Datasource I would not like to use a XA
              >Transaction due to performance Issues
              >and the TxDataSource:
              >-->
              >
              ><JDBCTxDataSource EnableTwoPhaseCommit="true"
              >JNDIName="finstral.datasource.fbs" Name="finstral Content Datasource"
              >PoolName="oraclePool" Targets="fbsserver"/>
              >
              ><!-- no comment required -I hope.
              >Next comes the "special" Pool
              >-->
              >
              ><JDBCConnectionPool CapacityIncrement="5"
              >DriverName="weblogic.jdbc.oci.xa.XADataSource" InitialCapacity="1"
              >LoginDelaySeconds="1" MaxCapacity="2" Name="oracleSecurityPool"
              >Properties="user=xxx;password=xxx;server=xxx.xxx.xxx"
              >RefreshMinutes="5" Targets="fbsserver" TestConnectionsOnRelease="true"
              >TestTableName="Users" SupportsLocalTransaction="true"/>
              >
              ><!-- Well since there can only be one none XARessourceManager involved
              >in a 2PC
              >(keyword: Two Phase Commit) I will have to use a XACapable Driver for
              >the other
              >Datasource. Due to all the bugs in the oracle.xxx driver. I'll be
              >using the jdriver for oci.
              >I activated 'SupportsLocalTransaction' hoping it would solve my
              >problem - without effect. I just left in there now, since it made
              >sense me. Not?
              >Again the TxDataSource:
              >-->
              >
              ><JDBCTxDataSource EnableTwoPhaseCommit="true"
              >JNDIName="finstral.datasource.fbssecurity" Name="finstral Security
              >Datasource" PoolName="oracleSecurityPool" Targets="fbsserver"/>
              >
              ><!-- The System starts right up and can locate the test tables and
              >everything. So I think all of this stuff is working here -->
              >
              >
              >
              >ejb-jar.xml
              >-----------
              ><ejb-jar>
              >     <enterprise-beans>
              >          <session>
              >               <ejb-name>TPCTestBean</ejb-name>
              >     
              ><home>de.sitewaerts.futuna.common.test.tpcbean.TPCHome</home>
              >     
              ><remote>de.sitewaerts.futuna.common.test.tpcbean.TPC</remote>
              >     
              ><ejb-class>de.sitewaerts.futuna.common.test.tpcbean.TPCBean</ejb-class>
              >               <session-type>Stateless</session-type>
              >               <transaction-type>Bean</transaction-type>
              >          </session>
              >     </enterprise-beans>
              >     <assembly-descriptor/>
              ></ejb-jar>
              >
              ><!-- Originally I had the assembly-descriptor full of transaction
              >requirements. I thought since
              >the bean is handling all of the transaction stuff itself, it might get
              >confused by the 'container-transaction'
              >properties, and deleted them. Do I need them anyway?-->
              >
              >weblogic-ejb-jar.xml
              >--------------------
              ><weblogic-ejb-jar>
              >     <weblogic-enterprise-bean>
              >          <ejb-name>TPCTestBean</ejb-name>
              >          <stateless-session-descriptor/>
              >          <jndi-name>finstral/ejb/test_tpc</jndi-name>
              >     </weblogic-enterprise-bean>
              ></weblogic-ejb-jar>
              >
              ><!-- Nothing I have to explain here -->
              >
              >BeanCode (from the implementingBeanClass:
              >'de.sitewaerts.futuna.common.test.tpcbean.TPCBean')
              >-----------------------------------------------------------------------
              >---------------------
              >
              > public void setupTables() throws RemoteException
              > {
              > UserTransaction tx = getTransaction();
              > //getTransaction calls: 'tx = sCtx.getUserTransaction()' and does
              >some errorhandling
              >
              > log.info("Die Transaktion vor den Connections: "+tx.toString());
              > //Sorry bout the German. You should get the Message though.
              > log.info("Der Transaktionsstatus vor den Connections:
              >"+transactionStatus(tx));
              >
              > Connection conSecurity = getConnection(DATASOURCE_SECURITY, tx);
              > //gets a Connection via a DataSourceName from the JNDI tree
              > Connection conContent = getConnection(DATASOURCE_CONTENT, tx);
              >
              > log.info("Die frische Connection conSecurity: "+conSecurity);
              > log.info("Die frische Connection conContent: "+conContent);
              >
              > tearDownTable(conSecurity);
              > //Does nothing special
              > tearDownTable(conContent);
              >
              > log.info("Die Transaktion nach dem Teardown: "+tx.toString());
              > log.info("Der Transaktionsstatus nach dem Teardown:
              >"+transactionStatus(tx));
              >
              > Statement stmt = null;
              > try
              > {
              > stmt = conSecurity.createStatement();
              > //Well its getting interesting now.....
              >
              > log.info("Die Transaktion vor dem createtable: "+tx.toString());
              > log.info("Der Transaktionsstatus vor dem createtable:
              >"+transactionStatus(tx));
              > log.info("Die Connection conSecurity vor dem createtable:
              >"+conSecurity);
              > log.info("Die Connection conContent vor dem createtable:
              >"+conContent);
              >
              > stmt.executeUpdate(CREATE_TABLE);
              > //above is the row 91 -> throws: 'java.sql.SQLException: Does
              >not support SQL execution with no global transaction'
              >
              > stmt.close();
              >
              > stmt = conContent.createStatement();
              > stmt.executeUpdate(CREATE_TABLE);
              > stmt.close();
              > commitTransaction(tx);
              > }
              > catch (SQLException sqle)
              > {
              > log.error("Konnte kein table init machen", sqle);
              > rollbackTransaction(tx);
              > //The Code for this method is below
              > throw new EJBException(sqle);
              > }
              > finally
              > {
              > closeConnection(conSecurity);
              > closeConnection(conContent);
              > }
              > }
              >
              > protected void rollbackTransaction(UserTransaction tx)
              > {
              > log.info("Der Transaktionsstatus vor dem Rollback:
              >"+transactionStatus(tx));
              > log.info("Die Transaktion vor dem Rollback: "+tx.toString());
              > try
              > {
              > tx.rollback();
              > //above is row 200 -> throws: 'java.lang.IllegalStateException:
              >Transaction does not exist'
              > log.info("Der Transaktionsstatus nach dem Rollback:
              >"+transactionStatus(tx));
              > log.info("Die Transaktion nach dem Rollback: "+tx.toString());
              > }
              > catch (Exception e)
              > {
              > log.error("Konnte die Transaktion nicht backrollen.", e);
              > throw new EJBException(e);
              > }
              > }
              >
              >Log Excerpt
              >===========
              >INFO setupTables() (66) - Die Transaktion vor den Connections:
              >[email protected]
              >INFO setupTables() (67) - Der Transaktionsstatus vor den Connections:
              >STATUS_NO_TRANSACTION
              >INFO setupTables() (72) - Die frische Connection conSecurity:
              >weblogic.jdbc.rmi.SerialConnection@7c6daa
              >INFO setupTables() (73) - Die frische Connection conContent:
              >weblogic.jdbc.rmi.SerialConnection@3b425
              >INFO setupTables() (78) - Die Transaktion nach dem Teardown:
              >[email protected]
              >INFO setupTables() (79) - Der Transaktionsstatus nach dem Teardown:
              >STATUS_NO_TRANSACTION
              >INFO setupTables() (86) - Die Transaktion vor dem createtable:
              >[email protected]
              >INFO setupTables() (87) - Der Transaktionsstatus vor dem createtable:
              >STATUS_NO_TRANSACTION
              >INFO setupTables() (88) - Die Connection conSecurity vor dem
              >createtable: weblogic.jdbc.rmi.SerialConnection@7c6daa
              >INFO setupTables() (89) - Die Connection conContent vor dem
              >createtable: weblogic.jdbc.rmi.SerialConnection@3b425
              >ERROR setupTables() (101) - Konnte kein table init machen
              >java.sql.SQLException: Does not support SQL execution with no global
              >transaction
              >     at
              >weblogic.jdbc.oci.xa.XAConnection.beforeExecute(XAConnection.java:137)
              >     at
              >weblogic.jdbc.oci.xa.Statement.executeUpdate(Statement.java:112)
              >     at weblogic.jdbc.jta.Statement.executeUpdate(Statement.java:185)
              >     at
              >weblogic.jdbc.rmi.internal.StatementImpl.executeUpdate(StatementImpl.ja
              v
              >a:42)
              >     at
              >weblogic.jdbc.rmi.SerialStatement.executeUpdate(SerialStatement.java:54
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBean.setupTables(TPCBean.ja
              v
              >a:91)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBeanImpl.setupTables(TPCBea
              n
              >Impl.java:130)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBeanEOImpl.setupTables(TPCB
              e
              >anEOImpl.java:64)
              >     at
              >de.sitewaerts.futuna.common.test.TwoPhaseCommitUnitTest.setUp(TwoPhaseC
              o
              >mmitUnitTest.java:51)
              >     at
              >org.apache.commons.cactus.AbstractTestCase.runBareServerTest(AbstractTe
              s
              >tCase.java:297)
              >     at
              >org.apache.commons.cactus.server.ServletTestCaller.callTestMethod(Servl
              e
              >tTestCaller.java:148)
              >     at
              >org.apache.commons.cactus.server.ServletTestCaller.doTest(ServletTestCa
              l
              >ler.java:199)
              >     at
              >org.apache.commons.cactus.server.ServletTestRedirector.doPost(ServletTe
              s
              >tRedirector.java:149)
              >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              >     at
              >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl
              >java:213)
              >     at
              >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ
              l
              >etContext.java:1265)
              >     at
              >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl
              >java:1631)
              >     at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
              >     at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >INFO rollbackTransaction() (196) - Der Transaktionsstatus vor dem
              >Rollback: STATUS_NO_TRANSACTION
              >INFO rollbackTransaction() (197) - Die Transaktion vor dem Rollback:
              >[email protected]
              >ERROR rollbackTransaction() (206) - Konnte die Transaktion nicht
              >backrollen.
              >java.lang.IllegalStateException: Transaction does not exist
              >     at
              >weblogic.transaction.internal.TransactionManagerImpl.rollback(Transacti
              o
              >nManagerImpl.java:228)
              >     at
              >weblogic.transaction.internal.TransactionManagerImpl.rollback(Transacti
              o
              >nManagerImpl.java:222)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBean.rollbackTransaction(TP
              C
              >Bean.java:200)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBean.setupTables(TPCBean.ja
              v
              >a:102)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBeanImpl.setupTables(TPCBea
              n
              >Impl.java:130)
              >     at
              >de.sitewaerts.futuna.common.test.tpcbean.TPCBeanEOImpl.setupTables(TPCB
              e
              >anEOImpl.java:64)
              >     at
              >de.sitewaerts.futuna.common.test.TwoPhaseCommitUnitTest.setUp(TwoPhaseC
              o
              >mmitUnitTest.java:51)
              >     at
              >org.apache.commons.cactus.AbstractTestCase.runBareServerTest(AbstractTe
              s
              >tCase.java:297)
              >     at
              >org.apache.commons.cactus.server.ServletTestCaller.callTestMethod(Servl
              e
              >tTestCaller.java:148)
              >     at
              >org.apache.commons.cactus.server.ServletTestCaller.doTest(ServletTestCa
              l
              >ler.java:199)
              >     at
              >org.apache.commons.cactus.server.ServletTestRedirector.doPost(ServletTe
              s
              >tRedirector.java:149)
              >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              >     at
              >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl
              >java:213)
              >     at
              >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ
              l
              >etContext.java:1265)
              >     at
              >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl
              >java:1631)
              >     at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
              >     at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >
              >
              >CONCLUSION
              >==========
              >I'm going nuts.
              >I just don't get it.
              >The transaction is the same. I don't change the Connection. I start
              >the Transaction at the beginning before I do anything!
              >Please guys help me out.
              >Thx alot.
              >
              >Stefan "it's three o'clock in the morning, my girlfriend left me, and
              >my only friend is that stupid linux pinguine" Siprell
              >Software-Development
              ><<<<<<<<<<<<<<<<<<<<<<<<<<<
              ><sitewaerts> GmbH
              >Hebelstraße 15
              >D-76131 Karlsruhe
              >
              >Tel: +49 (721) 920 918 22
              >Fax: +49 (721) 920 918 29
              >http://www.sitewaerts.de
              >>>>>>>>>>>>>>>>>>>>>>>>>>>>
              >
              >
              >
              

  • How to recover in a two phase commit ?

    I am implementing a two phase commit with Oracle XA in Oracle 8.1.6. I am wondering how I can recover from failures occur between the PREPARE and the COMMIT stage. If I lose the database connection after the changes have been prepared, then I can't find a way to rollback or commit the changes.
    Appreciate any helps.
    Sam

    The iPod OS takes care of where/how to store the files on the iPod and it has not done this. This is why you need to get the files off your iPod first.
    My goal is to connect my iPod to my Mac, launch iTunes, and all of what's on my iPod displays in iTunes after single-clicking the iPod's icon in the Source pane of iTunes' window.
    This is very, very simple. This is how iTunes works normally.
    Since you now have the stuff from your iPod on your computer (using Ollie's iPod Extractor), load them into iTunes.
    Sync them to the iPod. This will update the iPod database so all of the files are seen/identified correctly by the iPod.
    Set the iPod prefs in iTunes to manually update.
    Now you can delete the stuff on your computer and iTunes and view/edit/delete the stuff on the iPod using iTunes.
    The outcome of using the utilities suggested in previous posts is that all of what's on my iPod gets copied to my Mac's hard drive (which is not what I'm trying to accomplish) and then that displays in iTunes' Library.
    Only because the files on the iPod are not "useable" with the iPod or iTunes right now.
    This is not something you will have to do everytime.
    Once you get them on your computer, you can do the above steps and you will not have to use any utilities.
    Just use iTunes.

  • Configuration of two-phase-commit in OC4J 10.1.2

    Configuration of two-phase-commit in OC4J 10.1.2 in application with multiple modules
    We have an application ear file consisting of ejb-modules (mdb and slsb) and two web-modules. We are using Oracle's advanced queueing for messaging and CMT (all ejb use the Required transaction attribute). We need different datasources (OrionCMTDataSource) including that for aq, so we need two-phase-commit. The web clients use ejbs and browse the messaging system. Our 'orion-application.xml' includes a commit-coordinator configuration, and the database is setup correctly. The configuration works fine for mdbs, when sending messages to the queues. When a client starts after messages have been sent and consumed by the mdbs, oc4j complains that no commit-coordinator is defined in 'server.xml'. If we start the client first, it can access the queues, but then the mdbs complain. It seems that the first one "gets" the commit-coordinator and the second one fails.
    Some questions:
    Why isn't the second client type using the commit-coordinator configuration of the "orion-application.xml"?
    Is such scenario not supported by OC4J?
    How can I setup the application correctly?
    How do I configure commit-coordinator with different datasources to the same database? (Commit-Coordinator is also this database)

    Take a look 'How to Use a Custom Serializer with Oracle Application Server Web Services' [1].
    In your case, you should be looking at BeanMultiRefSerializer (org.apache.soap.encoding.soapenc), which will serialize your data using href and providing a way to deal with cycles.
    All the best,
    Eric
    [1] http://www.oracle.com/technology/tech/webservices/htdocs/samples/serialize/index.html

  • Two Phase Commit on Slow Network

    Can I implement two phase commit transaction using Windows 2000 Professional's Dial-Up Connection ? Where would I find information on this ? I connected two Windows 2000 Prof. PCs using Dial-Up Connection on Telephone line. Now if I try to ping service on other PC using TNSPING it gives me connection timed out, how should I tackle this issue ?

    Hi Ioakim
    Performing an atomic transaction(ACID) that spans a source system, BizTalk and then a different destination system is not possible. This is due to the nature of distributed transactions - it may not be practical to hold locks on resources(needed for atomic
    transactions) that are spread across different networks. Given that there is no guarantee that the resources may be released in a reasonable amount of time, transactions in BizTalk can only be scoped to and from the BizTalk MessageBoxDb. Or in other words,
    you can read a record to BizTalk transactionally and on the send side, send a message from BizTalk transactionally.
    However, you can simulate/fake atomic transaction characteristics(although tricky) using compensation logic within BizTalk orchestrations. So, lets say you read+delete a record from SystemA into BizTalk, and that record has to be updated in SystemB.
    If for some reason the insert to SystemB fails, you would have to write custom logic in a compensation block that then performs the reverse operation in SystemA - i.e., it inserts back the record in SystemA in this case. So, using compensating actions, it
    is possible to ensure that all the systems involved are transactionally consistent at the end of the day.
    There's an article from C.Young that discusses this in some detail-
    http://geekswithblogs.net/cyoung/archive/2006/12/06/100424.aspx
    Thanks
    Arindam

  • Data-source.xml -  BaseResourceException - two phase commit

    Hi,
    I am seeing the following exception.   Please let me know how to fix this.
    thanks
    Sunita
    com.sap.engine.services.connector.exceptions.BaseResourceException: The resource "xxx" does not support two-phase commit and cannot be enlisted in the current transaction, because another non supporting two-phase commit resource is already enlisted for component "webContainer/applications/JavaEE/YY-TPRO/YYr-TPRO" in application "JavaEE/YY-TPRO". Only one of the enlisted resources is allowed to be non two-phase commit compliant.
    I am using JDBC 1.x datasource, and the .xml looks like this:
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE data-sources SYSTEM 'data-sources.dtd'>
    <data-sources>
      <application-name>JavaEE/yy-TPRO</application-name>
      <data-source>
        <data-source-name>xxx</data-source-name>
        <alias>jdbc/xxyyDB/TPRO</alias>
        <driver-name>OracleThin</driver-name>
        <init-connections>1</init-connections>
        <max-connections>20</max-connections>
        <max-time-to-wait-connection>60</max-time-to-wait-connection>
        <sql-engine>vendor_sql</sql-engine>
        <jdbc-1.x>
          <driver-class-name>oracle.jdbc.driver.OracleDriver</driver-class-name>
          <url>jdbc:oracle:thin:@sol-mercury:1521:hermes</url>
          <user-name>abcd</user-name>
          <password>abcd</password>
        </jdbc-1.x>
      </data-source>
    </data-sources>

    HI,
    Thanks for the response, I already went through these threads.
    My exception seems to be related to this - Problem with connection sharing if J2EE transaction is running
    and suggested solutions seems to be:
    The problem is caused when there is an inappropriate attempt to open a second connection in an active JTA transaction. There is either an attempt to get a second connection from an un-shareable non-XA DataSource or an attempt to get it from another non-XA DataSource. You have to:
    &#9679;     Use no more than one connection from this data source while the JTA transaction is active or
    &#9679;     Declare the data source as shareable, depending on your application logic.
    Question is, How can I make data source as shareable?? 
    This application worked fine in JBoss, weblogic and now we are trying to port it to NetWeaver.
    Is any of the above options are configurable in data-sources.xml?
    Thanks for your guidance and response.
    Surekha

  • SAP Transaction in Two phase Commit ?

    Hi all,
    When we make a connection to SAP system from .NET application using .NET connector, we can make calls to transactional BAPI/RFC’s. But is there any way in which we can make SAP transaction take part in MS DTC (Microsoft Distributed Transaction Coordinator) transactions?
    We want to implement a two phase commit and hence this question. Please let us know if you are aware of any mechanism using which we can implement a two phase commit.
    The call scenario is described below:
    TransactionScope
    1.     SQL_StoredProc1();
    2.     SQL_StoresProc2();
         10.           SAP_TransactionBAPI();
         11.          SQLStoredProcn();
          12.           SQLTransaction_Commit();
          13.      SAPTransaction_Commit();
    Exception ()
    SQLTransaction_Rollback();
    SAPTransaction_Rollback();
    In the above case all the statements have to be executed successfully or they have to be rolled back. Let’s think of the situation where all the statements up to line 13 have been executed successfully, but there was a failure during the commit of SAP, and then we have to rollback the SQL transaction also which is already committed.
    This situation can be handled if and only if SAP transaction manager follows XA transaction protocol and it can include itself in MSDTC. So that every transaction manager votes for the commit (it can be called half commit) if the transaction is successful otherwise all the transactions should be rolled back.
    Can anybody tell me the way to include SAP transaction manager in MSDTC if it at all possible?

    Hi Saket,
    I did  not understand much of your query but just wanted to know how are you making a connection to the backend here?
    If using DataSources and if the datasource is configured directly in the EP server (using Visual Administrator), you have an option of the required 2-way commit.
    The datasource takes care of it directly. Apart from this, the datasource will also take cre of the connection pooling.
    Hope this helps.
    Awaiting Reply.
    Warm Regards,
    Ritu

  • ADF Service Interface: two-phase commit issue for multiple data sources

    In FusionApps, For a service interface we had to use two DataSource resources (in the ejb-jar.xml),
    one is ApplicationServiceDBDS for SI and the other one is ApplicationDBDS(I don’t know the exact reason why this is needed, but when running the webservice, Framework was throwing an error asking for this) After adding these two, now(while running the webservice) we’re caught up with an error saying that unable to participate in two phase commit. I think this is because we added two dataSources, if we just use one dataSource everything is working fine.
    Error message from app server:
    "JDBC driver does not support XA, hence cannot be a participant in two-phase commit. To force this participation, set the GlobalTransactionsProtocol attribute to LoggingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source=ApplicationDB"
    we have made the changes to ApplicationDB as said in the error message, but then the server is failing to start because of this.

    Hi,
    this is what the doc says - though not about two phase commit but transaction sharing:
    "At runtime, the calling client and the ADF service may or may not participate in the same transaction, depending on the protocol used to invoke the service (either SOAP or RMI). Only the RMI protocol and a Java Transaction API (JTA) managed transaction support the option to call the service in the same transaction as the calling client."
    When your application accesses a remote ADF Business Components service, each remote call is stateless, and the remote service will not participate in the same transaction as the business component that uses a service-enabled application module's service interface.
    In the majority of the cases, calls to remote services will be informational in nature and will not make changes to remote objects. However, if you must use a remote service to make changes, then keep these points in mind:
    An exception thrown by the remote service will cause the local transaction to fail.
    If you successfully call a remote service that results in modifying data, and then subsequently your local transaction fails for any reason, then it is the responsibility of your error handling code to perform a compensating transaction against the remote service to "undo" the previous change made."
    http://docs.oracle.com/cd/E23943_01/web.1111/b31974/bcextservices.htm
    Frank

  • Tuxedo 12c - Do mainframe adapters support two-phase commit?

    With Oracle Tuxedo 12c, do the Tuxedo mainframe adapters support two-phase commit?  I see there is support for two-phase commit with Tuxedo COBRA, for relational databases.  My customer has a requirement to integrate with their mainframe systems and require two-phase commit (for rollback functionality) with the Tuxedo mainframe adapters.

    Hi,
    The Tuxedo Mainframe Adapter for SNA supports two phase commit protocol, or in IBM mainframe parlance syncpoint level 2.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Two-phase commit

    Hi, all.
    Does WeblogicServer 5.1sp10 support two-phase commit?
    I'm going to use Informix and Oracle.
    But I'm not sure that WLS 5.1 support it.
    For example,when new record is inserted in Informix,
    it must be inserted in oracle.
    and update,delete processes must be treated as two-phase commit.
    If it support two-phase commit, let me know what i do for using
    two-phase commit.
    thanks..

    Robert wrote:
    Hi, all.
    Does WeblogicServer 5.1sp10 support two-phase commit?No, you need WLS 6.x
    -- Rob
    >
    I'm going to use Informix and Oracle.
    But I'm not sure that WLS 5.1 support it.
    For example,when new record is inserted in Informix,
    it must be inserted in oracle.
    and update,delete processes must be treated as two-phase commit.
    If it support two-phase commit, let me know what i do for using
    two-phase commit.
    thanks..

  • Is the two phase commit feature in WL Enterprise 5.1

              I can't find any document in 5.1 documentation center that shows
              how to setup WL and code examples for two phase commit feature.
              If the feature is supported, can anyone point me to the doc?
              Thanks
              

    Yes, WebLogic Enterprise 5.1 supports XA/2PC.
              WebLogic Server 5.1 does not support 2PC.
              WebLogic Server 6.0 does support XA/2PC.
              -- Rob
              Kalvin Liang wrote:
              > I can't find any document in 5.1 documentation center that shows
              > how to setup WL and code examples for two phase commit feature.
              >
              > If the feature is supported, can anyone point me to the doc?
              >
              > Thanks
              

  • What is two phase commit in Forms?

    Hi
    Could any one tell me,
    what is two phase commit in Forms?
    Cyp

    Hi,
    two phase commit is a database feature that ensures data consistency.
    "Oracle's two-phase commit mechanism guarantees that, a distributed transaction will either commit on all involved nodes or roll back on all involved nodes."
    Frank

  • Two Phase Commit with WLS6.1 SP2

              Hi,
              I am testing two phase commit using my own resource adapter on WLS 6.1 SP2. And
              I saw something rather strange. The two phase commit process went well at first.
              The first resource manager (RM) was start-ended and then prepare-committed without
              any error. The second RM was also start-ended and then prepare-committed. But
              before the second RM's XAResource.commit() could finish, the first RM's XAResource.commit()
              was called AGAIN, three times, all at the same time, on three different threads,
              with three different XIDs, none of them had ever appeared before, all with onePhase=true.
              Anyone has any similar experience?
              Thanks.
              Yongtao
              

              Hi,
              I am testing two phase commit using my own resource adapter on WLS 6.1 SP2. And
              I saw something rather strange. The two phase commit process went well at first.
              The first resource manager (RM) was start-ended and then prepare-committed without
              any error. The second RM was also start-ended and then prepare-committed. But
              before the second RM's XAResource.commit() could finish, the first RM's XAResource.commit()
              was called AGAIN, three times, all at the same time, on three different threads,
              with three different XIDs, none of them had ever appeared before, all with onePhase=true.
              Anyone has any similar experience?
              Thanks.
              Yongtao
              

  • Using XA Drivers and two phase commit in WLS6.0 sp2

              Hi,
              I'm trying to do a distributed transaction with the oracle thin driver. Classes12.zip
              and oracle 8.1.7 with Jserver installed.
              Weblogic6.0
              When i try to do a ejbCreate the following error is thrown now if i remove the
              transaction context the error goes.
              Here is the config file info.
              <JDBCConnectionPool CapacityIncrement="1" DriverName="oracle.jdbc.xa.client.OracleXADataSource"
              InitialCapacity="1" MaxCapacity="5" Name="TestPool1" Properties="user=sys;password=change_on_install;url=jdbc:oracle:thin:@192.168.168.129:1521:ORCL"
              RefreshMinutes="0" ShrinkPeriodMinutes="15" ShrinkingEnabled="true" Targets="examplesServer"
              TestConnectionsOnRelease="false" TestConnectionsOnReserve="false"/>
              <JDBCTxDataSource EnableTwoPhaseCommit="true" JNDIName="TestPool1TX" Name="TestPool1TX"
              PoolName="TestPool1" Targets="examplesServer"/>
              ---------------------------- Here are the different errors i get when i try with
              different databases.
              java.sql.SQLException: ORA-29532: Java call terminated by uncaught Java exceptio
              n: java.lang.NullPointerException ORA-06512: at "SYS.JAVA_XA", line 0 ORA-06512:
              at line 1
              at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
              at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:542) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1311)
              at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:738 ) at
              oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.ja va:1313)
              at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.jav a:1232)
              at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement .java:1353)
              at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:176 0) at
              oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme nt.java:1805)
              at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar edStatement.java:322)
              at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat ement.java:366)
              at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:10 2) at
              weblogic.jdbc.jta.OracleXAResource.start(OracleXAResource.java:41)
              Would be very grateful for any help.
              Regards, kartik
              

              Make sure that:
              1. Your Oracle server is a 8.1.7 server. This is necessary for XA. Looks like
              you are already doing this.
              2. You do not have any Oracle 8.1.6 JDBC driver zip files in your path before
              the Oracle 8.1.7 one.
              Regards,
              Priscilla
              "kartikeyabisht" <[email protected]> wrote:
              >
              >Hi,
              >
              >I'm trying to do a distributed transaction with the oracle thin driver.
              >Classes12.zip
              >and oracle 8.1.7 with Jserver installed.
              >
              >Weblogic6.0
              >
              >When i try to do a ejbCreate the following error is thrown now if i remove
              >the
              >transaction context the error goes.
              >
              >Here is the config file info.
              >
              ><JDBCConnectionPool CapacityIncrement="1" DriverName="oracle.jdbc.xa.client.OracleXADataSource"
              >InitialCapacity="1" MaxCapacity="5" Name="TestPool1" Properties="user=sys;password=change_on_install;url=jdbc:oracle:thin:@192.168.168.129:1521:ORCL"
              >RefreshMinutes="0" ShrinkPeriodMinutes="15" ShrinkingEnabled="true" Targets="examplesServer"
              >TestConnectionsOnRelease="false" TestConnectionsOnReserve="false"/>
              >
              ><JDBCTxDataSource EnableTwoPhaseCommit="true" JNDIName="TestPool1TX"
              >Name="TestPool1TX"
              >PoolName="TestPool1" Targets="examplesServer"/>
              >
              >---------------------------- Here are the different errors i get when
              >i try with
              >different databases.
              >
              >java.sql.SQLException: ORA-29532: Java call terminated by uncaught Java
              >exceptio
              >n: java.lang.NullPointerException ORA-06512: at "SYS.JAVA_XA", line 0
              >ORA-06512:
              >at line 1
              >
              >at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114) at
              >oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
              >at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:542) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1311)
              >at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:738
              >) at
              >oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.ja
              >va:1313)
              >at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.jav
              >a:1232)
              >at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement
              >.java:1353)
              >at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:176
              >0) at
              >oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
              >nt.java:1805)
              >at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
              >edStatement.java:322)
              >at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
              >ement.java:366)
              >at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:10
              >2) at
              >weblogic.jdbc.jta.OracleXAResource.start(OracleXAResource.java:41)
              >
              >-------------------------------------------------------------
              >
              >Would be very grateful for any help.
              >
              >Regards, kartik
              >
              

Maybe you are looking for

  • Apple ID prompt on iPhone 4S uses old email address

    My Hotmail address became Outlook, so I've changed my Apple ID. My iPhone 4S doesn't realise this, though - when it prompts for my password, it uses my old ID. How do I get it to recognise the update?

  • Error with connecting to TEST in Financial Reporting Studio

    Test server is confirmed working as seen connecting to EPMA in Workspace. However, when it comes to connecting to Test in FRS, after changing the Test URL to Test server in the startup box, I received the following error message: "You are not authori

  • SM58 "Transaction Recorded"

    Hi I am seeing transaction recorded status for trfc's in SM58. I am not able to process them. Please help on how to process them. I see that RFC connection is active. Thanks.

  • Dont know the password of admin

    i have macbook air and the store has done all the software thing and they have put the password . the password hint shows (no password! leave it blank) . what should i do i cant load any software because it ask password every time i load software . 

  • Why 2 copies of same App?

    Mavericks is dumb. So I download an App from the develpers website, and I start using it. It has an option to "Review" the app, so I click on it, but it sends me to the App Store where I am supposed to leave this review. But since I didn't download t