1 Reply Latest reply on Oct 17, 2007 9:49 AM by Adrian Brock

    Merge xa and no-xa Connections  - CMT problem

    paata lominadze Master

      hi all,
      i have two database
      1. Oracle 10g
      2. Oracle Timesten In Memory Database
      i tried to use xa transactions with them and i had not any problem with distributed transactions.
      problem appears after i have configured replications on timesten database.


      Use of distributed (XA) transactions in the presence of replication is highly problematic. It is impossible for the database to guarantee consistency and recoverability since it only sees part of the 'big picture'. This is true for all databases and vendors. Different vendors approach this issue in different ways. Some document the (many, serious) potential issues but allow you to mix XA and replication. Some ignore the issues and permit you to use them (usually leading to subtle and serious problems after a system has been live for months or years). TimesTen takes a more defensive approach and forbids you to mix replication and XA thereby avoiding all the nasty problems that will inevitably arise.

      Note that XA transactions are at best very slow and more typically are really, really slow so if you are using any significant amount of XA transactions then there is probably no value in using TimesTen. If you only use XA for a very small part of the application then there are often better, and faster, approaches that can be used.

      and i got an error like this :
      WorkerThread#0[192.168.9.151:40657]*JdbcOdbc.createSQLException:Reason = [TimesTen][TimesTen 7.0.2.0.0 ODBC Driver][TimesTen]TT11036: XA transactions may not be started while replication is configured -- file "xaStart.c", lineno 219, procedure "sbXAStart"; SQLstate = S1000; VendorCode = 11036
      java.sql.SQLException: [TimesTen][TimesTen 7.0.2.0.0 ODBC Driver][TimesTen]TT11036: XA transactions may not be started while replication is configured -- file "xaStart.c", lineno 219, procedure "sbXAStart"
       at com.timesten.jdbc.JdbcOdbc.createSQLException(JdbcOdbc.java:9337)
       at com.timesten.jdbc.JdbcOdbc.standardError(JdbcOdbc.java:9471)
       at com.timesten.jdbc.JdbcOdbc.standardError(JdbcOdbc.java:9436)
      


      i remove xa for timesten and try to use non-xa datasource, but now i can't merge these two connections.
      of course i use container managed transaction.
      how i can manage two database connections ?

      also i could not use bean managed transactions for some reason.
      any idea will be appreciated.

      _________________
      Regards,
      Paata