JavaEE之JTA

Java事务API。

  • 允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。事务最简单最直接的目的就是保证数据的有效性,数据的一致性。
  • 个人理解:JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。
  • 调用Javax.transaction.UserTransaction接口的begin、commit、rollback等方法控制事务

事务隔离、传播属性的设置

  1. 并发访问和隔离(5种隔离级别Connection接口)-----多个线程同时访问一个数据库
  • TRANSACTION_NONE:对事务和数据不进行任何隔离限制
  • TRANSACTION_READ_UNCOMMITTED:允许事务读取另一个事务的未提交数据---读脏数据
  • TRANSACTION_READ_COMMITTED:读取所有提交的数据,不允许重复读---默认的隔离级别
  • TRANSACTION_REPEATABLE_READ:可重复读的事务隔离
  • TRANSACTION_SERUALIZABLE:可串行化的事务----最高级别也是性能最低的
  1. 属性
  • Required:默认的EJB事务
  • RequiresNew:为methodB开启一个新的事务
  • Mandatory:
  • NotSupported
  • Supports
  • Never
 

事务的范围

EJB的事务管理

容器管理事务(CMT)

  • 容器将在方法之前开始JTA事务,根据方法调用情况决定提交或回滚事务
  • Annotation或XML配置文件告诉容器如何处理事务
  • 简单方便但不灵活

Bean管理事务

  • 开发者决定事务边界,灵活指定事务划分细节,是使用JTA还是JDBC事务

事务超时设置

解决:某个事务超过时长没有提交,应用服务器将会自动回滚该事务

猜你喜欢

转载自blog.csdn.net/tengliu6/article/details/80472166
JTA