`
VerRan
  • 浏览: 459796 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

JTA 事务使用

阅读更多

业务场景:

客户下发订单后,订单到竣工需要走三个岗位1,2,3包括两个迁移过程:

1-》2的迁移 实现方式为无状态EJB,容器控制事务

2-》3的迁移 实现方式为无状态EJB,容器控制事务

备注:2-》3的迁移中还调用其它系统的EJB和RMI服务,webservice服务。相对复杂。

 

现在将1-》2 的状态迁移和2-3的迁移放置在一起给外围系统提供接口(EJB实现),同时需要控制1-》2,2->3迁移过程中的事务,当2-》3失败的时候,不影响1->2的事务提交。

 

解决思路:

1. 使用无状态EJB再次进行封装后,如果使用容器控制失误,则1-》2和2-》3的事务无法分离控制。舍弃

2. 将1-》2和2->3分别提供给外围系统,然后由调用方自己控制。 此方案尽量避免,给外围系统的接口尽量简单符合业务场景。(最坏的方案)

3. 使用JTA进行事务控制。

 

使用JTA控制事务的步骤:

1. 获取javax.transaction.UserTransaction userTransaction = sessionContext

.getUserTransaction();

2. 执行第一次状态迁移

userTransaction.begin();

1-》2

userTransaction.commit();

3. 执行第二次状态迁移

userTransaction.begin();

2-》3

userTransaction.commit();

4. 配置文件设置 将EJB的事务控制类型设置为Bean <transaction-type>Bean</transaction-type>

 

这样就实现了对容器控制事物EJB 的分离事务控制。

 

 

分享到:
评论

相关推荐

    Spring配置JTA事务管理

    3. 配置数据源和消息队列:JTA事务管理通常需要与JNDI注册的数据源和消息队列配合使用。你需要确保这些资源在应用服务器中已经正确配置,并可以通过JNDI名访问。 4. 配置事务属性:Spring提供了`@Transactional`...

    事务处理:JTA事务

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

    JTA分布式事务使用示例代码

    本示例代码旨在展示如何在Java环境中使用JTA来解决多数据源的事务问题。 首先,我们需要了解JTA的基本概念。JTA定义了两个主要组件:Transaction Manager(事务管理器)和XAResource(事务资源)。事务管理器负责...

    JTA事务源码示例

    Spring+iBatis+JOTM实现JTA事务: 如何处理跨库事物:spring + jtom 的jta事务是个很好的选择. 这个源码示例非常不错,包括所有的源码和jar包,下载后eclipse 或 myeclipse 导入就能用。 里面有详细的说明和注释,...

    tomcat 配置JTA事务

    在tomcat 中配置JTA 事务,方便管理web项目

    在Spring中使用JTA事务管理

    本文将详细介绍如何在Spring中使用JTA事务管理,包括通过集成JOTM(Java Open Transaction Manager)以及引用Tomcat的JTA事务。 ### 1. 通过集成JOTM,直接在Spring中使用JTA事务 #### 1.1. 添加JOTM类库到类路径...

    Springboot 动态多数据源 jta分布式事务

    Spring Boot支持JTA事务管理,主要通过以下组件实现: 1. Atomikos:这是一个开源的JTA实现,提供了一种在Spring Boot中实现分布式事务的方式。 2. Bitronix:另一种JTA实现,也可以与Spring Boot集成,处理分布式...

    使用JTA实现跨库事务

    在提供的"SimpleDemo"示例中,可能包含了一个简单的JTA事务管理的例子,比如如何在Java代码中启动和结束一个事务,以及如何在事务中操作数据库。具体实现细节可能包括使用JPA、JDBC或其他持久化框架与JTA集成的方法...

    springboot整合JTA组件,多数据源事务管理

    XA协议是数据库层面的一套分布式事务管理的规范,JTA是XA协议在Java中的实现,多个数据库或是消息厂商实现JTA接口,开发人员只需要调用SpringJTA接口即可实现JTA事务管理功能。 JTA事务比JDBC事务更强大。一个JTA事务...

    JDBC事务 JTA事务 传播特性 隔离级别

    **JTA事务**则适用于分布式环境,可以跨越多个数据源管理事务。JTA通过`UserTransaction`接口提供事务控制,支持两阶段提交(2PC)协议。在2PC中,事务处理监视器(TPM)先询问所有资源管理器(如数据库)是否准备好...

    JDBC事务和JTA(XA)事务

    使用JTA事务可以确保分布式事务的一致性和可靠性,例如,在一个分布式事务中,如果某个资源管理器执行失败,可以使用rollback()方法来回滚事务,以确保分布式事务的一致性。 JTA事务工作流程 JTA事务工作流程可以...

    Spring+iBatis+JOTM实现JTA事务

    在Java开发中,事务管理是确保数据一致性与完整性...然而,需要注意的是,JTA事务管理相对于本地事务会有一定的性能开销,因此在不需要分布式事务的情况下,可以选择使用Spring的本地事务管理,以提高系统的运行效率。

    springboot整合jta实现多数据源事务管理

    - 使用`@EnableJtaTransactionManagement`注解开启JTA事务管理。 5. **编写代码**: - 在需要进行多数据源事务操作的服务类上,使用`@Transactional`注解声明事务边界。 - 在事务方法内部,根据业务逻辑切换数据...

    Atomikos jta事务框架改写历程

    但在迁移到基于Mina框架的API时,Resin不再作为依赖,因此需要寻找新的JTA事务管理工具。在这个过程中,Atomikos 2.Api被选中作为替代方案。然而,一个主要的问题出现了:Atomikos的数据库连接配置缺少类似于`...

    Spring Boot+Druid+Mybatis实现JTA分布式事务

    Mybatis则是一个轻量级的持久层框架,它简化了SQL操作,但在JTA事务中,Mybatis需要配合Spring的TransactionManager来工作,使得每个数据库操作都在同一个事务上下文中。 实现步骤如下: 1. 添加依赖:在Spring ...

    Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务

    Atomikos是一个开源的JTA事务管理器,它提供了对分布式事务的支持。在分布式系统中,由于多个资源(如数据库、消息队列等)需要进行原子操作,因此需要一个事务管理器来协调这些操作,确保事务的ACID特性(原子性、...

    spring+jotm+ibatis+mysql实现JTA分布式事务

    MySQL是广泛使用的开源关系型数据库管理系统,它支持事务处理,是分布式事务中的关键组件。在这个项目中,MySQL作为数据存储,与JOTM和Spring配合,共同确保分布式事务的正确执行。 项目文件“AjtaAbatisTest”可能...

    多数据源事务jta测试

    1. **配置数据源**:为每个数据库创建独立的数据源,并确保它们支持JTA事务。 2. **注册XAResource**:将每个数据源作为XAResource注册到事务协调器。 3. **开始事务**:通过UT接口启动一个新的全局事务。 4. **执行...

    Jboss4.2.2+Spring2.5.6+hibernate+JTA事务的实现

    使用`PlatformTransactionManager`接口的实现`JtaTransactionManager`来启用JTA事务。 3. **配置Hibernate**:配置Hibernate的`hibernate.cfg.xml`,设置JTA数据源,并指定使用Spring的事务管理。 4. **编写业务...

    spring 结合druid和hibernate使用jta配置分布式事务

    4. **配置Hibernate**:配置Hibernate的SessionFactory,指定使用的数据源,并启用JTA事务。 5. **配置Spring事务管理器**:创建Atomikos事务管理器的bean,并配置Spring的PlatformTransactionManager,指定使用...

Global site tag (gtag.js) - Google Analytics