jta

1.  XADataSource中autocommit是处于false状态的,所以其只能够采用jta中事务处理方式

    进行begin(),commit(),rollback()操作。
    如果不采用jta中事务处理方式
   如:UserTransactionut = (UserTransaction)initCtx.lookup("java:comp/UserTransaction");
        ut.begin();
          /*
            操作
           */
        ut.commit();
     则增加,删除,更改  操作不能够进行
2. jta对普通的DataSource都是将其AutoCommit 设置为false
    进行操作的
   如果 在 ut.begin();后,所调用到的connection都设置为false,不管之前的
 
  
3  以下是一些实践: 使用的glassfish服务器
jta获得:UserTransactionut = (UserTransaction)initCtx.lookup("java:comp/UserTransaction");
  非 XA DataSource jndi测试 connection.jsp 
   在jndi中配置的 XADataSource DataSource ds = (DataSource)initCtx.lookup("jdbc/webgoods"); 


在jndi中配置的 DataSource = com.sun.gjc.spi.jdbc40.DataSource40@1f71790 
在调用 UserTransaction.begin()方法前 获得的connection AutoCommit是打开的 
conn.getAutoCommit() = true 
在glassfish jndi中默认配置的(JTA) UserTransaction = com.sun.enterprise.transaction.UserTransactionImpl@12bf720
1 2 3 4 6 7 8 9 10 11 
在调用 UserTransaction.commit()方法前 获得的connection AutoCommit是关闭的 
说明:在UserTransaction.begin()方法后,connection的AutoCommit设置为false 
conn.getAutoCommit() = false 

 
 
 
 

XA DataSource jndi测试 xaconnection.jsp 
在jndi中配置的 XADataSource DataSource ds = (DataSource)initCtx.lookup("jdbc/xawebgoods"); 

在jndi中配置的 DataSource = com.sun.gjc.spi.jdbc40.DataSource40@ac7172 

XADataSource中的 connection AutoCommit总是false,所以感觉没有必要测试 

在调用 UserTransaction.begin()方法前 获得的connection AutoCommit是打开的 
conn.getAutoCommit() = false 
在glassfish jndi中默认配置的(JTA) UserTransaction = com.sun.enterprise.transaction.UserTransactionImpl@14c0f68
1 2 3 4 6 7 8 9 10 11 
在调用 UserTransaction.commit()方法前 获得的connection AutoCommit是关闭的 
说明:在UserTransaction.begin()方法后,connection的AutoCommit设置为false 
conn.getAutoCommit() = false 
 
 
 
 

XA DataSource jndi测试 没有采用jta事务处理,看看能否进行插入操作 xaconnection2.jsp 
在jndi中配置的 XADataSource DataSource ds = (DataSource)initCtx.lookup("jdbc/xawebgoods"); 

在jndi中配置的 DataSource = com.sun.gjc.spi.jdbc40.DataSource40@4f5a9e 

XADataSource中的 connection AutoCommit总是false,所以感觉没有必要测试 
XADataSource中没有采用UserTransaction的jta事务处理,则增加操作能否成功
 
 
 
 
非 XA DataSource Hibernate jndi测试 HibernateJNDINOXADataSource.jsp 
在HibernateSessionFactory中设置CONFIG_FILE_LOCATION = "/noXAhibernate.cfg.xml"; 
查询结果是:licg
 
 
XA DataSource Hibernate jndi测试 HibernateJNDIXADataSource.jsp 
在HibernateSessionFactory中设置CONFIG_FILE_LOCATION = "/XAhibernate.cfg.xml"; 
查询结果是:licg
 
原文地址:https://www.cnblogs.com/heling/p/2175277.html