JBoss事务的一些关键特性

开发 后端
本文介绍JBoss事务的四要素,JBoss事务在JBOSS_HOME/server/all/config/jboss-service.xml中管理器配置。

多个操作组成一个不可分割的整体,可以称为一个JBoss事务。

1.JBoss事务的四要素简称ACID,分别是
Atomicity 原子性:事务的多个操作组成一个单元,所有操作要么一起成功,要么一起失败
Consistency 一直性:事务操作的前后,数据库必须保持数据的一致性和完整性
Isolation 隔离性:多个事务之间彼此不会相互影响
Durability 持久性:事务成功之后,事务结果应该持久化,也就是说事务的成功是持久的

2.加锁:锁分为悲观锁和乐观锁,当使用悲观锁时,分为五个隔离级别,分别是SERIALIZABLE、 REPEATABLE_READ (default)、READ_COMMITTED、READ_UNCOMMITTED和NONE,隔离级别逐步减弱。乐观锁也叫版本锁,其对数据进行操作时,将其复制到临时区,操作之后将版本与原有数据比较,如果一致则将递增版本并写回,如果不一致则回滚,由于乐观锁仅在复制出数据和提交数据时对数据加锁,所以并行度更高,但如果写操作比较频繁地话则容易出现冲突导致回滚。   

3.两阶段提交(Two-Phase Commit)
如果对多种可恢复的资源进行操作,在事务提交时,可能会导致部分事务成功而部分事务失败,使数据处于不一致的状态,这时候可使用分布式事务,分布式事务采用两阶段提交协议,在事务提交之前,先询问各种资源是否为提交做好准备(第一阶段),然后再提交(第二阶段),如果失败,则全部回滚

JBoss事务管理器配置在JBOSS_HOME/server/all/config/jboss-service.xml中,如下:

  1. <mbean code="org.jboss.tm.TransactionManagerService"    name="jboss:service=TransactionManager"  xmbeandd="resource:xmdesc/Transaction                             ManagerService-xmbean.xml">        
  2.         <attribute name="TransactionTimeout">300</attribute> 
  3.        <attribute name="GlobalIdsEnabled">true</attribute>        
  4.        <depends optional-attribute-name="XidFactory">jboss:service=XidFactory</depends> 
  5.    </mbean>    

可以通过JNDI名java:/UserTransaction访问事务

  1. UserTransaction ut = (UserTransaction) ctx.lookup("java:/UserTransaction");  
  2.     ut.begin();  
  3.     ut.commit(); 

 

【编辑推荐】
  1. JBoss和JMS简要概述
  2. 在JBoss4.0上Oracle数据库配置
  3. JBoss4.0详细概览
  4. 从JBoss的服务器中获得源码的细节
  5. JBoss IPv6应用服务器支持
责任编辑:佚名 来源: csdn
相关推荐

2009-06-15 15:31:11

JBossDeploy

2015-01-06 15:07:23

LTE

2011-07-03 19:07:47

关键词

2018-09-11 16:15:36

Vue高版本前端

2011-08-04 13:55:10

Cocoa Objective- 文件

2021-04-23 07:51:56

CSS Container Q Chrome

2009-08-13 09:49:16

C#关键字

2013-08-26 15:19:44

应用商店AppStore关键字选取

2013-08-26 14:58:48

App Store关键字优化App营销

2012-05-21 10:13:05

XCode调试技巧

2013-03-29 13:17:53

XCode调试技巧iOS开发

2011-03-15 17:46:43

2009-07-21 09:55:45

iBATIS分页

2011-07-13 09:13:56

Android设计

2020-02-03 16:03:36

疫情思考

2010-09-28 14:14:19

SQL语句

2011-06-01 16:50:21

JAVA

2009-06-25 09:50:32

JSF

2009-06-18 14:54:52

Spring AOP

2013-07-02 09:43:02

编程策略
点赞
收藏

51CTO技术栈公众号