TUXEDO的XA与两阶段提交事务学习_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4101 | 回复: 0   主题: TUXEDO的XA与两阶段提交事务学习        下一篇 
chengpeng.gong
注册用户
等级:中尉
经验:400
发帖:9
精华:0
注册:1970-1-1
状态:离线
发送短消息息给chengpeng.gong 加好友    发送短消息息给chengpeng.gong 发消息
发表于: IP:您无权察看 2014-5-29 17:18:36 | [全部帖] [楼主帖] 楼主

TUXEDO XA功能解决了在分布式事务处理环境中,多个独立数据库操作事务一致性问题。
这些操作可能发生在不同的数据库,一般情况下,某一数据库无法知道其它数据库在做什么,此时由交易中间件通知相关数据库的提交或回滚。
TUXEDO与数据库通过XA接口规范,使用两阶段提交来完成一个全局事务,具体步骤为:

在第一阶段,交易中间件请求所有相关数据库准备提交(预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。
当某一数据库收到预提交后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同意提交的应答,
此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提交该事务,数据库对共享资源的操作还未释放(处于上锁状态)。
如果由于某种原因数据库无法提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源上的锁,并返回给交易中间件失败应答。
在第二阶段,交易中间件审查所有数据库返回的预提交结果,如所有数据库都可以提交,交易中间件将要求所有数据库做正式提交,这样该全局事务被提交。
而如果有任一数据库预提交返回失败,交易中间件将要求所有其它数据库回滚其操作,这样该全局事务被回滚。

TUXEDO XA 配置方法:
1、修改$TUXDIR/udataobj/RM 增加

#ORACLE 8.0.5
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh


2、生成TMS FOR ORACLE ,执行

$ buildtms -r Oracle_XA -o /${TUXDIR}/bin/TMS_ORA


3、创建TLOG
在ubb.txt文件的*MACHINS节中加入:

TLOGDEVICE="/usr/tuxedo/TLOG"
TLOGNAME=TLOG
TLOGSIZE=300


用以下命令生成TLOG

$tmadmin -c
> crdl -b1200 -z/usr/tuxedo/TLOG


4、在ubb.txt 配置文件的*GROUPS节中加入

DEFAULT:
TMSNAME=TMS_ORA
TMSCOUNT=2
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/db_username/db_passwd+Sestm=60+SQLNET=aaa+LogDir=."


第二个Oracle_XA:RM中定义的名字
acc=P/数据库用户名/数据库密码
SQLNET=db client连接串

5、重新生成ubb.txt

tmloadcf ubb.txt


6、在编译server时加入-r Oracle_XA选项

buildserver -s SERVICENAME -f a.o -f b.o -o SERVER_EXE_FILENAME -r Oracle_XA


7、oracle数据库准备工作
以Sysadmin登陆数据库,执行如下脚本:

SQL>@$ORACLE_HOME/rdbms/admin/xaview.sql


赋权限给public用户:

SQL>grant select on v$xatrans$ to public with grant option ;
SQL>grant select on v$pending_xatrans$ to public with grant option ;
SQL>grant select on dba_pending_transactions to scott ;


8、tmboot -y  启动时检查TMS_ORA是否成功




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论