什么是JTA?

JTA全称Java Transaction API ,即Java事务API,英文解释:

Java Transaction API (JTA) specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system: the resource manager, the application server, and the transactional applications.

JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。

JTA允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据,这些数据可以分布在多个数据库上。JDBC驱动程序的JTA支持极大地增强了数据访问能力。

JTA的主要接口:

位于javax.transaction包中

a、UserTransaction接口:让应用程序得以控制事务的开始、挂起、提交、回滚等。由Java客户端程序或EJB调用。
b、TransactionManager 接口:用于应用服务器管理事务状态
c、Transaction接口:用于执行相关事务操作
d、XAResource接口:用于在分布式事务环境下,协调事务管理器和资源管理器的工作
e、Xid接口:为事务标识符的Java映射

注:前3个接口位于Java EE版的类库 javaee.jar 中,Java SE中没有提供!UserTransaction是编程常用的接口。JTA只提供了接口,没有具体的实现。

JTA需要满足的条件:

如果使用 JTA 界定事务,那么就需要有一个实现 javax.sql.XADataSource 、 javax.sql.XAConnection 和 javax.sql.XAResource 接口的 JDBC 驱动程序。一个实现了这些接口的驱动程序才可以参与 JTA 事务。

一个 XADataSource 对象就是一个 XAConnection 对象的工厂。 XAConnection 是参与 JTA 事务的 JDBC 连接。要使用JTA事务,必须使用XADataSource来产生数据库连接,产生的连接为一个XA连接。

XA连接(javax.sql.XAConnection)和非XA(java.sql.Connection)连接的区别在于:

XA可以参与JTA的事务,而且不支持像JDBC那样的自动提交

同时,应用程序一定不要对 XA 连接调用 java.sql.Connection.commit() 或者 java.sql.Connection.rollback() 。相反,应用程序应该使用 UserTransaction.begin()、 UserTransaction.commit() 和 serTransaction.rollback() 。

注意: Oracle, Sybase, DB2, SQL Server等大型数据库才支持XA, 支持分布事务。 MySQL属于Non-XA。

JTA编程的基本步骤
a、首先配置JTA ,建立相应的数据源
b、建立事务:通过创建UserTransaction类的实例来开始一个事务。代码如下:
  Context ctx = new InitialContext(p) ;
   UserTransaction trans = (UserTransaction) ctx.lookup("javax. Transaction.UserTransaction")
c、开始事务:代码为 trans.begin() ;
d、找出数据源:从Weblogic Server上找到数据源,代码如下:
 DataSource ds = (DataSource) ctx.lookup(“mysqldb") ;
e、建立数据库连接:Connection mycon = ds.getConnection() ;
f、执行SQL操作:stmt.executeUpdate(sqlS);
g、完成事务:trans.commit(); / trans.rollback();
h、关闭连接:mycon.close() ;

事务管理之JTA事务相关推荐

  1. java jdbc事务管理_hibernate事务管理 (jdbc jta)

    评论 # re: hibernate事务管理 (jdbc jta) 2007-07-29 10:18 pig JTA事务的开始 Transaction tx = session.beginTransa ...

  2. Spring事务管理-》Spring事务管理(annotation)

    5.6 使用@Transactional 除了使用XML类型的事务管理,同时Spring也提供了Annotation类型的事务管理.如下所示: 一:Spring事务管理 =============== ...

  3. Java开发【Spring之AOP详解(xml--注解->方法增强、事务管理(声明事务的实现))】

    文章目录 引入 一.AOP概述 1.什么是AOP 2.AOP的优势及使用场景 3.AOP实现原理 二.代理模式 1.代理模式概念 2.代理模式分类 3.静态代理演示 定义HouseAgencyComp ...

  4. spring配置mysql事务管理_Spring 数据库事务管理机制

    要点1 Spring事务管理方法编程式事务(TransactionTemplate.PlatformTransactionManager) 声明式事务(配置式.注解式) 2 Spring 注解 @Tr ...

  5. Spring的事务管理和数据库事务相关知识

    1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱.         比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱. ...

  6. spring框架学习 - Data Access之 事务管理 - 声明式事务管理

    接上一篇博客:https://blog.csdn.net/qq_43605444/article/details/122085016?spm=1001.2014.3001.5502 4.声明式事务管理 ...

  7. Spring事务管理3----声明式事务管理(1)

     声明式事务管理(1)基于    基于 tx/aop  这种事务管理相比编程式事务管理来说对业务层基本没有改动,通过  TransactionProxyFactoryBean 创建业务层的代理,通过A ...

  8. 基于AOP的事务管理与普通事务管理有什么区别?

    为什么80%的码农都做不了架构师?>>>    (一) 用编程的方法来实现,我觉得这种方法比较灵活,控制起来比较方便,但是需要写一些额外的代码 <!--定义Bean--> ...

  9. Spring事务管理--(一)数据库事务隔离级别与mysql引擎基础讲解

    一.前言 本篇文章来自网络整理,很简单,但是很实用对于初级和中级工程师. 原创地址1:http://www.cnblogs.com/hollen/archive/2012/05/13/2498309. ...

最新文章

  1. 个人博客二|创建项目
  2. Delphi 2009 中 TStrings 与 TStream 的增强
  3. 听说你想去大厂看学妹,带你看看字节跳动后端开发面试长啥样?
  4. u盘添加veket linux,veket要怎样才能安在u盘上?
  5. VS2010与Windows7共舞:对库进行编程
  6. 还是觉得应该动手写点东西....
  7. 两种模式的资源管理器代码之———— 删除文件夹
  8. iOS底层探索之Block(一)——初识Block(你知道几种Block呢?)
  9. 抱薪者说 | 廿七喜得子老王为名忧,论坛聚英豪树鑫拔头筹
  10. 投影仪显示播放服务器连接异常,「投影仪维修」常见投影机故障如何解决?
  11. html5 连连看小游戏
  12. 2022最新整理新手零基础系统的自学网络安全
  13. ios平台Ahorro记账APP换新机无法下载问题
  14. CF677C Vanya and Label
  15. 计算机硬盘空间不足怎么删,Win10硬盘空间不足?教你这样清理,瞬间多出10个G!...
  16. aws php 上传文件 限制大小_单个文件大小 上传百度云盘 微信发送 有大小限制 怎么破?...
  17. foxmail发邮件时总提示接收密码错误是怎么回事
  18. 生命如歌-五年级每日一记
  19. 实习纪实——1.31记
  20. 在不同的paste网站上搜索泄漏的凭据Scavenger

热门文章

  1. sdafersfsdf
  2. 长安大学计算机科学与技术(交通信息工程)课程专业课,长安大学硕士专业介绍:交通信息工程及控制...
  3. 一文搞懂戴克斯特拉算法-dijkstra
  4. redis源码分析 -- cs结构之服务器
  5. 【ChatGPT】ChatGPT 能否取代程序员?
  6. ASP.NET多文件批量打包下载
  7. HP ProLiant 服务器进入BIOS 按键总结
  8. flv格式怎么转换成mp4,一键快速转换视频格式
  9. CPU联盟潘榆文:百度侵权的大山虽然高不可攀,但我愿做愚公
  10. 科技云报道:酷栈科技xView,不只是比肩传统PC的全能体验