三、数据库XA 设置
3.1 ORACLE XA
1. 在附件中提供了rm文件,另外建议运行oracle的demo文件获得要连接的所有lib 库的名称.然后将这些名称全部写在RM 文件中.
如: Oracle 8i for NT
Oracle_XA;xaosw;%ORACLE_HOME%/RDBMS/XA/ORAXA8.LIB
%ORACLE_HOME%/PRECOMP/LIB/MSVC/ORASQL8.LIB
%ORACLE_HOME%/PRECOMP/LIB/MSVC/ORASQX8.LIB
%ORACLE_HOME%/OCI/LIB/MSVC/OCI.LIB
%ORACLE_HOME%/OCI/LIB/MSVC/OCIW32.LIB
2. ubb 文件中 *GROUP 节加上
TMSNAME=TMS_ORA
TMSCOUNT=3
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTM=120+LogDir=.+SqlNet=abcde"
具体在Oracle 联机文档Application Development->oracle8 Application Development's Guild->Oracle XA->Defining the xa_open String 中提供了解释
3.在oracle 一侧需运行xaview.sql,并且scott 用户有操作权限,运行结果会记录trc 文件里.(在oracle8.0.5 这一步不是必须的)
4.运行 buildtms -o $(TUXDIR)/bin/TMS_ORA -r Oracle_XA
5. 在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen(), tpsrvdone()中EXEC SQL DISCONNECT... 改成tpclose(); 实际可拷贝 $TUXDIR/apps/bankapp/appinit.c
6.需在ubb 文件中MACHINE 节指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
TLOGSIZE=100
7.建立TLOG 文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该shell 文件.
8.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort.
3.2 SYBASE XA
1.在RM 文件,运行sybase 获得要连接的所有lib 库的名称.然后将这些名称全部写在RM 文件中:Sybase_XA:???????.
2.ubbconfig 文件中 *GROUP 节 TMS_NAME=TMS_SYB TMSCOUNT=3 OPENINFO="?????"具体察看Sybase 文当中xa_open String 中提供了解释
3.运行 buildtms -o $(TUXDIR)/bin/TMS_SYB -r Sybase_XA
4. 在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen, tpsrvdone()中EXEC SQL DISCONNECT...改成tpclose(); 实际可查看$TUXDIR/apps/bankapp/appinit.c
5.需在ubb 文件中MACHINE 节指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
TLOGSIZE=100
6.建立TLOG 文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该shell 文件.
7.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort.
3.3 INFORMIX XA
1.运行esql -lib 获得要连接的所有lib 库的名称.然后将这些名称全部加到RM 文件中
INFORMIX-OnLine:infx_xa_switch:${INFORMIXDIR}/lib/esql/libinfxxa.a
/usr/informix/lib/esql/libixos.a /usr/informix/lib/esql/libixgen.a
/usr/informix/lib/esql/libixsql.a /usr/informix/lib/libixasf.a
/usr/informix/lib/esql/libixos.a /usr/informix/lib/esql/libixgen.a
/usr/informix/lib/esql/libixgls.a -lnsl_s -lm -lV3 -lcl -lsec
/usr/informix/lib/esql/libixglx.a
2.ubbconfig 文件中
*GROUP 节 TMS_NAME=TMS_INFO TMSCOUNT=3 OPENINFO="INFORMIX-OnLine:test_tux"
具体察看Sybase 文当中xa_open String 中提供了解释
3.运行 buildtms -o $(TUXDIR)/bin/TMS_INFO -r INFORMIX-OnLine
4. 在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen, tpsrvdone()中EXEC SQL DISCONNECT... 改成tpclose(); 实际可查看$TUXDIR/apps/bankapp/appinit.c
5.需在ubb 文件中MACHINE 节指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
TLOGSIZE=100
6.建立TLOG 文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该shell 文件.
7.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort.