首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Atomikos实现JTA分布式事务

本文全面的介绍了JTA分布式事务模型和接口规范,以及开源的分布式事务解决方案Atomikos。...1 JTA规范 Java事务API(JTA:Java Transaction API)和它的同胞Java事务服务(JTS:Java Transaction Service),为J2EE平台提供了分布式事务服务...JTA规范定义了事务管理器与其他事务参与者交互的接口,而JTS规范定义了事务管理器的实现要求,因此我们看到事务管理器底层是基于JTS的。...特别需要注意的是,并不是所有的web容器都实现了JTA规范,如tomcat并没有实现JTA规范,因此并不能提供事务管理器的功能。...2 JTA规范接口 JTA事务模型规定了一个分布式事务中有哪些组件,而JTA接口规范则规定这些组件之间如何交互。

3.3K31

JTA规范

JTA规范事务模型 Java事务API(JTA:Java Transaction API)和它的同胞Java事务服务(JTS:Java Transaction Service),为J2EE平台提供了分布式事务服务...下面介绍一下在JTA规范中,模型中各个组件的作用: 事务管理器(transaction manager): 处于图中最为核心的位置,其他的事务参与者都是与事务管理器进行交互。...JTA规范定义了事务管理器与其他事务参与者交互的接口,而JTS规范定义了事务管理器的实现要求,因此我们看到事务管理器底层是基于JTS的。...特别需要注意的是,并不是所有的web容器都实现了JTA规范,如tomcat并没有实现JTA规范,因此并不能提供事务管理器的功能。...特别需要注意的是,JTA规范规定事务管理器的功能由application server提供。

1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SpringBoot整合JTA

    导读 JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。...JDBC驱动程序的JTA支持极大地增强了数据访问能力。 JTA是基于XA标准制定的,采用两阶段提交的方式来管理分布式事务。...即是一个事务管理器和多个资源管理器协作完成,第一阶段各个资源管理器提交,第二个阶段事务管理器需要查看资源管理器是否全部提交成功再提交。...Java实现JTA强一致性的事务有很多种实现,笔者只是选择了atomikos的实现 SpringBoot整合 添加依赖 org.springframework.boot...:JTA事务的自动配置类 关于事务的执行原理可以看看笔者之前的文章,Spring事务源码解析

    92120

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

    一、JTA组件简介 1、JTA基本概念 JTA即Java-Transaction-API,JTA允许应用程序执行分布式事务处理,即在两个或多个网络计算机资源上访问并且更新数据。...XA协议是数据库层面的一套分布式事务管理的规范,JTA是XA协议在Java中的实现,多个数据库或是消息厂商实现JTA接口,开发人员只需要调用SpringJTA接口即可实现JTA事务管理功能。...JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。...JTA规范定义了事务管理器与其他事务参与者交互的接口,其他的事务参与者与事务管理器进行交互。 二、SpringBoot整合JTA 项目整体结构图 ? 1、核心依赖 <!...基本思路都是把数据源交给JTA组件来统一管理,方便事务的通信。

    70210

    Spring Boot 2.x基础教程:使用JTA实现分布式事务

    如果这两条数据在一个数据库中,那么通过之前介绍的事务管理就能轻松解决了。但是,当这两个操作位于不同的数据库中,那么就无法实现了。 本文就来介绍一种解决这类问题的方法:JTA事务。...什么是JTA JTA,全称:Java Transaction API。JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。...所以,当我们在同时操作多个数据库的时候,使用JTA事务就可以弥补JDBC事务的不足。...动手试试 下面我们就来实操一下,如何在Spring Boot中使用JTA来实现多数据源下的事务管理。...JTA事务生效,保证了test1和test2两个库中的User表数据更新一致,没有制造出脏数据。

    1.3K20

    JTA深度历险-原理与实现

    JTA 为 J2EE 平台提供了分布式事务服务,它隔离了事务与底层的资源,实现了透明的事务管理方式。...实现原理# 很多开发人员都会对 JTA 的内部工作机制感兴趣:我编写的代码没有任何与事务资源(如数据库连接)互动的代码,但是我的操作(数据库更新)却实实在在的被包含在了事务中,那 JTA 究竟是通过何种方式来实现这种透明性的呢...,使得 JTA 可以在异构事务资源之间执行协同沟通。...上述示例演示了 JTA 事务的处理过程,下面将为您展示事务资源(数据库连接,JMS)是如何以透明的方式加入到 JTA 事务中的。...#3 JTA和JTS关系# 大体上所来,JTA是一种接口规范,定义了一套接口,接口定义了相关的程序角色之间需要遵守的约定,JTA中约定了几种主要的程序角色,分别是事务管理器、事务客户、应用服务器、资源管理器

    1K50

    Spring 分布式事务实现

    基于MQ,JTA实现多服务的分布式事务 Orderservice监听新订单队列中的消息,获取之后新增订单,成功则往新订单缴费队列中写消息,中间新增订单的过程使用JTA事务管理,当新增失败则事务回滚,不会往新订单缴费队列中写消息...使用 Spring JTA 可以使用 如JBoss之类的应用服务器提供的JTA事务管理器 Atomikos、Bitronix等库提供的JTA事务管理器 禁止使用JTA 为什么禁用JTA ?...那既然不使用 JTA,如何实现事务呢?...MQ 事务尚未提交,所以可直接回滚。这也就是不使用 JTA 时遇到的最大难题。...2 事务方案选型 业务一致性要求 强一致性事务 JTA(性能最差、只适用于单个服务内) 弱、最终一致性事务 最大努力一次提交、链式事务(设计相应的错误处理机制) 业务场景 MQ-DB 最大努力一次提交

    49620

    java事务的使用_Java跨库事务

    2.JTA事务 JTA(Java Transaction API)提供了跨数据库连接(或其他JTA资源)的事务管理能力。...JTA事务管理则由JTA容器实现,J2ee框架中事务管理器与应用程序,资源管理器,以及应用服务器之间的事务通讯。...简单的说JTS实现了JTA接口,并且符合OTS的规范。 JTA事务周期可横跨多个JDBC Connection生命周期,对众多Connection进行调度,实现其事务性要求。...3)JTA编程的基本步骤 a、首先配置JTA ,建立相应的数据源 b、建立事务:通过创建UserTransaction类的实例来开始一个事务。...但是,标准的JTA方式的事务管理在日常开发中并不常用。 JTA的缺点是实现复杂,通常情况下,JTA UserTransaction需要从JNDI获取。

    1.6K30

    Java事务管理

    : JDBC事务JTA(Java Transaction API)事务、容器事务 1.1 JDBC事务 JDBC的一切行为包括事务是基于一个Connection的,JDBC通过Connection对象进行事务管理...(); } } JDBC事务的优点: 接口较为简单,性能较好 缺点: 不支持多数据库的事务 1.2 JTA事务 Java事务API(Java Transaction API,简称JTA) Java...事务服务(Java Transaction Service,简称JTS) JTA和JTS一起,为J2EE平台提供了分布式事务服务。...就能把普通的JDBC操作直接转成JTA操作,JTA对DataSource、Connection与Resource都是有要求的,只有符合XA规范,并且实现了XA规范的相关接口的类才能参与到JTA事务中来。...)的区别在于:XA可以参与JTA事务,而且不支持自动提交 下面是一个依赖于J2EE容器的,使用JTA事务的转账操作(需要通过JNDI方式获取UserTransaction与DataSource) public

    73240

    Spring分布式事务实现

    分布式事务是指操作多个数据库之间的事务,spring的org.springframework.transaction.jta.JtaTransactionManager,提供了分布式事务支持...在spring中分布式事务是通过jta(jotm,atomikos)来进行实现。 ...-- JTA事务管理器 --> <bean id="jtaTransactionManager" class="org.springframework.transaction.<em>jta</em>.JtaTransactionManager...<em>JTA</em>全称为Java Transaction API,顾名思义<em>JTA</em>定义了一组统一的<em>事务</em>编程的接口,这些接口如下: XAResource  XAResource接口是对实现了X/Open CAE规范的资源管理器...更多细节请参见: Sun Microsystems Inc.J2EE Connector Architecture 1.5  参考推荐: Spring分布式<em>事务</em>实现 <em>JTA</em>与JCA分布式<em>事务</em> 理解

    91650

    java事务_Java 事务详解

    二、Hibernate事务处理 (1)Hibernate事务处理 在Hibernate框架中,使用Transaction接口来维护了事务实现(JTA,JDBC)的抽象。...(1)JTA 在应用系统数据量越来越大时,系统数据就需要分布在不同的数据库中,当业务需求在多个数据库中做原子性操作时就可以选择JTA (Java Transaction API),JTA事务比JDBC事务更强大...一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。...(2)JTA原理 不同的数据库有不同的数据库供应商,JTA就是将这个不同的数据库管理起来,统一创建一个原子事务,全部成功即成功,一个不成功就回滚所有的操作(JTA还是较重量级) (3)实例 Spring...有很多的JTA框架,这里使用的是atomikos框架,具体代码请点击链接查看 四、分布式消息最终一致性事务 (1)最终一致性 当应用系统数据越来越庞大,最终数据的一致性成为了一个很好的解决方案,即能即时响应

    1.5K20

    atomikos JTAXA全局事务

    TransactionEssentials: 1、实现了JTA/XA规范中的事务管理器(Transaction Manager)应该实现的相关接口,如: UserTransaction实现是com.atomikos.icatch.jta.UserTransactionImp...而不再是使用java.sql.Connection中的setAutoCommit(false)的方式来开启事务。其他JTA规范中定义的接口,开发人员并不需要直接使用。...事务的bean,注意在使用jta事务的时候,依然可以使用spring的声明式事务管理 package com.tianshouzhi.atomikos; import com.tianshouzhi.atomikos.mappers.db_user.UserMapper...然后将JTAService中的异常模拟的注释打开,会发现出现异常后,两个库中都没有新插入的数据库,说明我们使用的JTA事务管理器的确保证数据的一致性了。...=true #JTA事务的默认超时时间,默认为10000ms com.atomikos.icatch.default_jta_timeout=10000 #事务的最大超时时间,默认为300000ms。

    2.8K20

    基于可靠消息方案的分布式事务(二):Java中的事务

    Java事务的类型有三种:JDBC事务JTA(Java Transaction API)事务、容器事务。...但是,由于JDBC无法实现分布式事务,而如今的分布式场景越来越多,所以,JTA事务就应运而生。...操作直接转成JTA操作,JTA对DataSource、Connection和Resource 都是有要求的,只有符合XA规范,并且实现了XA规范的相关接口的类才能参与到JTA事务中来。...XAConnection 是参与 JTA 事务的 JDBC 连接。 要使用JTA事务,必须使用XADataSource来产生数据库连接,产生的连接为一个XA连接。...具体JTA更多的内容,本文不再展开,后面有机会专门深入介绍JTA事务。 Spring 事务管理 Spring支持编程式事务管理和声明式事务管理两种方式。

    1.2K60
    领券