数据库XA设置
1 ORACLE XA
1.1在附件中提供了rm文件,另外建议运行oracle的demo文件获得要连接的所有lib库的名称.然后将这些名称全部写在RM文件中.
如: #Oracle 8i for NT
Oracle_XA;xaosw;%ORACLE_HOME%RDBMSXAORAXA8.LIB %ORACLE_HOME%PRECOMPLIBMSVCORASQL8.LIB %ORACLE_HOME%PRECOMPLIBMSVCORASQX8.LIB %ORACLE_HOME%OCILIBMSVCOCI.LIB %ORACLE_HOME%OCILIBMSVCOCIW32.LIB
#Oracle 8i for Unix
Oracle_XA:xaosw:-L$/lib -lclntsh
1.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中提供了解释
1.3.在oracle用sys用户登录sqlplus,
a)运行$/rdbms/Admin/xaview.sql,
b)grant select on v$xatrans$ to public;
c)grant select on dba_pending_transactions to scott;
d)commit;
1.4.运行 buildtms -o $(TUXDIR)/bin/TMS_ORA -r Oracle_XA
1.5. 在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen(), tpsrvdone()中EXEC SQL DISCONNECT...改成tpclose(); 实际可拷贝$TUXDIR/apps/bankapp/appinit.c
1.6.需在ubb文件中MACHINE节指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
TLOGSIZE=500
1.7.建立TLOG文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该shell文件.
1.8.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort.
2 SYBASE XA
2.1.在RM文件,运行sybase获得要连接的所有lib库的名称.然后将这些名称全部写在RM文件中:#Sybase_11 for NT
SYBASE_XA_SERVER;sybase_xa_switch;C:SYBASE_SERVERliblibxasrvlib.lib
2.2.ubbconfig 文件中的 *GROUP节
TMS_NAME=TMS_SYB TMSCOUNT=3 OPENINFO=" SYBASE_XA_SERVER: -Uuserid1 -Ppassword1 -Nconnection2 -Lxa_log -Tall "
具体察看Sybase文当中xa_open String中提供了解释
2.3.运行 buildtms -o $(TUXDIR)/bin/TMS_SYB -r SYBASE_XA_SERVER
2.4. 在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen, tpsrvdone()中EXEC SQL DISCONNECT...改成tpclose(); 实际可查看$TUXDIR/apps/bankapp/appinit.c
2.5.需在ubb文件中MACHINE节指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
TLOGSIZE=500
2.6.建立TLOG文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该shell文件.
2.7.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort.
3. INFORMIX XA
3.1.运行esql -lib获得要连接的所有lib库的名称.然后将这些名称全部加到RM文件中INFORMIX-OnLine:infx_xa_switch:$/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
3.2.ubbconfig 文件中
*GROUP节 TMS_NAME=TMS_INFO TMSCOUNT=3 OPENINFO="INFORMIX-OnLine:test_tux"
具体察看Sybase文当中xa_open String中提供了解释
3.3.运行 buildtms -o $(TUXDIR)/bin/TMS_INFO -r INFORMIX-OnLine
3.4. 在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen, tpsrvdone()中EXEC SQL DISCONNECT...改成tpclose(); 实际可查看$TUXDIR/apps/bankapp/appinit.c
3.5.需在ubb文件中MACHINE节指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
TLOGSIZE=500
3.6.建立TLOG文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该shell文件.
3.7.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort.