posts - 66,  comments - 11,  trackbacks - 0
Java Transaction API(Java事务API) (JTA)Java Transaction API(Application Programming Interface)


什么是JTA Transaction?它有怎样的特点呢?JTA Transaction是指由J2EE Transaction manager去管理的事务。其最大的

特点是调用UserTransaction接口的begin,commit和rollback方法来完成事务范围的界定,事务的提交和回滚。JTA

Transaction可以实现同一事务对应不同的数据库,但是它仍然无法实现事务的嵌套。



分布式事务的规范由OMG的OTS所描述。   
JTA是只是一组java接口用于描述,J2ee框架中事务管理器与应用程序,资源管理器,以及应用服务器之间的事务通讯。   
它主要包括高层接口即面向应用程序的接口;XAResource接口即面向资源的接口;以及事务管理器的接口。值得注意的是JTA

只提供了接口,没有具体的实现。   
JTS是服务OTS的JTA的实现。简单的说JTS实现了JTA接口,并且符合OTS的规范。   
   
资源管理器只要其提供给事务管理器的接口符合XA接口规范,就可以被事务管理器处理。   
   
所以,JTA可以处理任何提供符合XA接口的资源。包括:数据库,JMS,商业对象等等  


“Java 事务 API”(JTA)启用两阶段提交功能。当配置 WebSphere Application Server 以访问数据库时,可选择具有

JTA 能力的驱动程序。如果需要两阶段提交功能,则必须使用启用 JTA 的驱动程序。
只要您在事务中调用了多个数据库连接,就需要 JTA。只要您在事务中调用了多个数据库服务器,就需要两阶段提交。这些

连接可以是相同的物理数据库服务器或多个数据库服务器。例如:

    * 实体企业 Bean Entity1 在应用程序服务器 AppServer1 中部署。
    * 实体企业 Bean Entity2 在应用程序服务器 AppServer1 中部署。
    * 会话企业 Bean Session1 在应用程序服务器 AppServer1 中部署。

如果 Session1 对同一事务内的 Entity1 和 Entity2 调用了方法而这两个企业 Bean 正在使用不同的物理数据库连接,则

必须对 Entity1 和 Entity2 使用的数据源启用 JTA。当从相同的数据源对象获取那些连接时,这也是成立的。这需要具有

JTA 能力的驱动程序以提交事务。
当事务涉及到多个进程时,JTA 也是必需的。例如,一个事务可能会涉及在多个应用程序服务器中部署的企业 Bean。

    * 实体企业 Bean Entity1 在应用程序服务器 AppServer1 中部署。
    * 实体企业 Bean Entity2 在应用程序服务器 AppServer2 中部署。
    * 会话企业 Bean Session1 在应用程序服务器 AppServer1 中部署。

如果 Session1 对同一事务(此事务构成一个分布式事务)内的 Entity1 和 Entity2 调用了方法,则必须对 Entity1 和

Entity2 使用的数据源启用 JTA。
性能实现JTA 启用的连接与非 JTA 启用的连接执行情况不同。基于此原因,如果您的应用程序不需要 JTA,则最好使用非

JTA 启用的驱动程序。
posted on 2009-10-16 14:23 王永庆 阅读(721) 评论(0)  编辑  收藏 所属分类: 设计思想

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年10月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(1)

随笔分类

随笔档案

关注blogs

搜索

  •  

最新评论

阅读排行榜

评论排行榜