XA transaction ,JTA , two phase commit , GTX0-j

本文主要是对以前一直迷惑的几个名字的学习。

xa transaction 简单查了一下,大概就是 distributed  transaction。 相比传统的transaction而言,传统的transaction 一般只发生在一个数据库中。而 xa transaction 可能需要发生在多个数据库或者其它资源中。比如说在某个业务环境下,一个transaction 需要往一个oracle数据库插入一条记录,需要往mysql插入一条记录,需要在MQ中写一条信息,需要往ldap中写一个信息, 只有这四部都完成了,才能说一个transaction成功了。这种情况下一般需要一个程序,比如J2EE服务器坐中间协调,如果是java环境,则该协调者通过JTA协议来协调各个资源。在transaction开始之后,所有的transaction参与者,包括oracle, mysql,mq,ldap等都试着在自己内commit一次,如果全部成功,那么协调者认为该transaction成功,所以该协调者就会进行最终commit。否则的话,认为该transaction失败,则协调者要求所有的数据库及MQ ldap回滚。 这两部提交的过程就叫做two phase commit. 而对于GTX0-j ,我是在看oracle rac官方文档的时候看到了下面这句话

The GTX0-j process provides transparent support for XA global transactions in an
Oracle RAC environment. The

所以如果该进程是子好吃XA transaction的,那么单实例的oracle db应该也有这种进程。可是这时的该进程是该哪个呢。 

 

posted on 2013-07-05 17:07  kramer  阅读(710)  评论(0编辑  收藏  举报

导航