zoukankan      html  css  js  c++  java
  • 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
     
  • 相关阅读:
    Nuget:aliyun-openapi-sdk
    iptables简述
    openOffice安装
    bash:command not found
    linux nc命令
    linux命令帮助
    linux用户管理
    LDAP 后缀操作
    LDAP缓存命令
    LDAP索引及缓存优化
  • 原文地址:https://www.cnblogs.com/heling/p/2175277.html
Copyright © 2011-2022 走看看