`

关于UserTransaction

    博客分类:
  • Java
 
阅读更多

 

public class UserTransaction {
    private static Map threadDbconnectionMap = new HashMap();
    public void begin() {
        dataSource.getConnection().setAutoCommit(false);
        threadDbConnectionMap.put(Thread.currentThread(), dataSource.getConnection());    
        dataSource.getConnection().startTransaction();
    }

    public void commit() {
        dataSource.getConnection().commitTransaction();
        threadDbConnectionMap.remove(Thread.currentThread());        
    }
}

public class DataSource {
    private static Map threadDbConnectionMap = new HashMap();    
    public Connection getConnection() {
       if(threadDbConnectionMap.get(Thread.currentThread()) == null) {
          threadDbConnectionMap.put(Thread.currentThread(), DBCONNECTION_POOL.getConnection);
       }
          return (Connection)threadDbConnectionMap.get(      Thread.currentThread());
    }
}



UserTransaction的机制就是建立一个currentThread和一个DBconnection的map,使得在同一个thread下的所有db operation使用同一个connection,这样通过背后的同一个connection的commit或rollback来保证transaction的atomic

分享到:
评论

相关推荐

    flex的第一步,安装、配置、与tomcat的挂接

    FLEX ;Unable to access UserTransaction in DataService 解决配置问题

    usertransaction-in-java-se:测试这个问题http

    usertransaction-in-java-se 要测试这个问题 我看到这个链接: : 我正在阅读另一个 ,然后我进行此测试以查看结果。

    javax.transaction.jar

    javax.transaction.jar javax.transaction.jar

    在Weblogic上配置Hibernate为JNDI

    在Weblogic上配置Hibernate为JNDI

    EJB中的JTA与JTS例子代码

    EJB中的JTA与JTS例子代码,JTA是一种高层的,与实现无关的,与协议无关的J2ee ... Bean自管理事务对于自管理事务的EJB,需要从EJB上下文中获取UserTransaction的接口引用,由自己负责完成事务的开始、提交或者回滚。

    Java EJB JTA JTS用法示例源代码.rar

    Java EJB JTA JTS用法示例源代码,例子对基于JTA的事务处理的实现进行了讨论,其中事务对象UserTransaction在EJB组件中执行,其实事务对象UserTransaction也可以在客户端使用。  J2EE包括了两套规范,用来支持...

    J2EE面试题

    b) 通过查找JNDI名为javax.transaction.UserTransaction的拿到UserTransaction c) new 一个UserTransaction对象 d) 不需要实例化,直接使用接口中的方法即可 参考答案 18) 关于事务,下列说法不正确的事 a ...

    事务处理:JTA事务

    JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。  要用 JTA 进行事务界定,应用程序要调用 javax.transaction.UserTransaction 接口中的方法。

    事务、控制、java

    public int delete(int sID) {  DataBaseConnection dbc = null;  dbc = new DataBaseConnection();  dbc.getConnection();... UserTransaction transaction = sessionContext.getUserTransaction();//获得JTA事务

    hibernate.properties

    #jta.UserTransaction javax.transaction.UserTransaction #jta.UserTransaction UserTransaction ## to use the second-level cache with JTA, Hibernate must be able to obtain the JTA TransactionManager #...

    spring 定时器

    jta.jar 会用到包中的usertransaction,具体什么用此处暂时不论 quartz-1.6.0.jar 会用到CronTrigger这个类,通过表达式实现精确的定时 commons-logging-1.1.1.jar 日志管理包 commons-collections-3.2.1.jar 集合...

    java Tomcat6 JTOM Project

    在Tomcat6中配置好的java工程已经配置好JTOM的DataSource和UserTransaction,打包下载.请自行配置数据库与补全Tomcat6中的公共文件.然后就可以直接访问页页http://127.0.0.1:8080/DaoTemplate_my/books.jsp和...

    java web 开发框架 非主流框架

    一个开发框架 SVN 下面的地址: ...数据库采用 JDBC+DataSource&UserTransaction 的方式。如果是追求框架的人可以直接跳过。 欢迎喜欢研究技术的人评论。 详细信息 请看根目录的ReadMe.txt 文档会在今后补全。

    JTA事务源码示例

    <property name="userTransaction"> <!-- 数据源A --> ${jdbc.driver}"/> ${jdbc.url}"/> ${jdbc.username}"/> ${jdbc.password}"/> <!-- 数据源B --> ${jdbc2.driver}"/> ${...

Global site tag (gtag.js) - Google Analytics