`

关于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

分享到:
评论

相关推荐

    JTA1.1规范(sun)

    在文档中,你可以找到关于UserTransaction、TransactionManager、XAResource等关键接口的详细说明。这些接口是实现跨不同数据源的事务一致性的重要组成部分。UserTransaction允许应用程序开始、提交、回滚事务,而...

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

    在Java SE环境中,UserTransaction接口是用于管理事务的核心组件,主要在Java EE应用程序服务器中广泛使用,但在Java SE中也可以通过特定的方式实现。本话题将深入探讨如何在Java Standard Edition中使用...

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

    在使用 Flex 应用程序与后端服务交互时,可能会遇到 “Unable to access UserTransaction in DataService” 错误。 **2. 解决方案** - **确保 JOTM 已正确安装**。按照上文所述的步骤安装并配置 JOTM。 - **检查 ...

    javax.transaction.jar

    2. **UserTransaction**:这是应用层与事务管理器交互的接口,提供了开始、回滚、提交事务的能力,以及查询当前事务的方法。 3. **TransactionManager**:用于全局事务管理,它可以控制多个资源(如数据库、消息队列...

    Tomcat中使用JOTM2.14

    <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction" factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="30"/> ``` 配置完成后,还需要在Tomcat的...

    JTA.JTS.J2SE.develop.code.rar_jts

    UserTransaction utx = (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction"); utx.begin(); // 执行事务性操作 utx.commit(); ``` 这里首先通过JNDI查找UserTransaction,然后开始...

    JTA-demo说明文档.doc

    3. 提交或回滚:当所有操作完成,应用决定提交事务(`userTransaction.commit()`)或在遇到错误时回滚(`userTransaction.rollback()`)。 4. 事务管理器工作:事务管理器协调各个资源,确保它们都按照事务边界一致...

    weblogic8上的jta编程说明(英文原版)

    - **Transaction接口**:此接口提供了关于当前事务状态的信息,如`getStatus()`方法可以返回当前事务的状态。 - **TransactionManager接口**:提供了一些高级的事务管理功能,比如`suspend()`和`resume()`方法,允许...

    在Weblogic上配置Hibernate为JNDI

    在Weblogic上配置Hibernate为JNDI涉及到的关键技术包括Weblogic服务器、Hibernate持久化框架以及Java Naming and Directory Interface (JNDI)。JNDI是一个Java API,它允许应用程序查找和访问不同类型的命名和目录...

    Lab4-JTA-code_jta_choiceh76_

    例如,用户可以通过`UserTransaction.begin()`开始一个新事务,`UserTransaction.commit()`提交事务,或者`UserTransaction.rollback()`回滚事务。 2. **TransactionManager**:此接口负责事务的生命周期管理,包括...

    Transaction

    - `UserTransaction` 接口的实例,用于开始、提交和回滚事务。 - 数据库连接的获取与释放,通常通过 `Connection` 对象来实现。 - `Connection` 对象的 `setAutoCommit(false)` 方法用于关闭自动提交,从而手动控制...

    EJB中的JTA与JTS例子代码

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

    michael_jta_code

    标签 "michael_jta_code" 也强调了这是一个关于代码的讨论,可能包含实际的Java类、方法和配置文件。 文件列表中的 "michael_jta_code" 很可能是包含这些示例代码的源代码文件,可能有Java源文件、XML配置文件或...

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

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

    geronimo-jta_1.1_spec-1.1-sources.jar.zip

    UserTransaction utx = (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction"); utx.begin(); // 执行Hibernate操作 session.getTransaction().begin(); // 数据操作 session.save...

    java实现JTA简单例子

    2. **UserTransaction接口**:这是应用程序与事务管理器交互的接口,提供了开始、提交、回滚事务的方法。在代码中,我们可能看到类似 `UserTransaction utx = ...; utx.begin();` 的代码来启动一个新的事务。 3. **...

    WEB开发相关的Transaction管理战略

    #### 三、关于事务策略系列文章 事务可以显著提高数据的质量、完整性和一致性,并使应用程序更加健壮。然而,在Java应用中实现成功的事务处理并非易事,它不仅涉及编码,还涉及到设计。本文作者马克·理查兹将作为...

    相关API—Java Transaction API概述(1).rar_API_transaction api

    3. 用户事务API(UserTransaction):应用程序通过这个接口启动和结束事务,它是与业务逻辑直接交互的部分。 4. 资源管理器(Resource Manager):如数据库、消息队列等,它们实现JTA的子接口XAResource,提供事务...

    使用eclipse通过weblogic开发简单的ejb应用(weblogic 10.x & ejb3.x)

    在本文中,我们将深入探讨如何使用Eclipse IDE与WebLogic Server 10.x版本结合,开发基于EJB 3.0规范的应用程序。EJB(Enterprise JavaBeans)是Java EE平台的核心组件,用于构建可扩展、可靠且安全的企业级应用程序...

    跨数据库的事务管理配置jta

    该类需要一个`UserTransaction`实例作为属性,因此还需要定义一个`userTransaction` Bean。在这个例子中,我们使用了Sun的默认实现,通过JNDI来获取`UserTransaction`实例。 #### 总结 通过上述配置,我们可以看到...

Global site tag (gtag.js) - Google Analytics