XA transaction ,JTA , two phase commit , GTX0-j
2013-07-05 17:07
169 查看
本文主要是对以前一直迷惑的几个名字的学习。
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应该也有这种进程。可是这时的该进程是该哪个呢。
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应该也有这种进程。可是这时的该进程是该哪个呢。
相关文章推荐
- 两阶段提交协议(two phase commit protocol,2PC)
- was7.0 下面的错误WTRN0063E: An illegal attempt to commit a one phase capable resource with existing two phase
- Two Phase Commit (2PC) [转]
- 两阶段提交协议(two phase commit protocol,2PC)
- Two-Phase-Commit for Distributed In-Memory Caches--reference
- 分布式锁:两阶段提交协议(two phase commit protocol,2PC)
- 两段提交协议(Two Phase Commit Protocol--2PC)
- 两阶段提交协议(two phase commit protocol,2PC)
- Perform Two Phase Commits in MongoDB
- two phase commit
- 两阶段提交协议(two phase commit protocol,2PC)
- 两阶段提交协议(two phase commit protocol,2PC)
- 分布式事物-2PC(Two-Phase Commit)
- 两阶段提交协议(two phase commit protocol,2PC)
- [Java] JDBC 06 批Transaction处理 -- conn.setAutoCommit(false); // 不让其自动提交 (很重要的知识点)
- flume-sink报错 java.lang.IllegalStateException: close() called when transaction is OPEN - you must either commit or rollback first
- FragmentTransaction commit Can not perform this action after onSaveInstanceState
- Maven: Unable to find resource 'javax.transaction:jta:jar:1.0.1B' in repository
- 关于用spring的JtaTransactionManager,配置分布式事务
- opensession()和getCurrentSession()方法的区别(JTA(java Transaction Api,分布式事务)事务和Connection事务:数据库自带的事务处理方式)