2022年XA与oracle数据库连接 .pdf

上传人:Che****ry 文档编号:27258301 上传时间:2022-07-23 格式:PDF 页数:11 大小:64.23KB
返回 下载 相关 举报
2022年XA与oracle数据库连接 .pdf_第1页
第1页 / 共11页
2022年XA与oracle数据库连接 .pdf_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《2022年XA与oracle数据库连接 .pdf》由会员分享,可在线阅读,更多相关《2022年XA与oracle数据库连接 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、TUXEDO 与 ORACLE 数据库的互连(来源:http:/) 前言在银行、电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及, 中间件已与操作系统、 数据库并列为三大基础软件。BEA Tuxedo 作为最优秀的中间件产品,在我国的很多行业中广泛使用,本文通过一个简单的例子介绍如何在TUXEDO 中访问 ORACLE 数据库。在两层的 C/S 结构中,客户端直接访问数据库, 当采用 TUXEDO 中间件后,形成三层结构。这时,客户端不直接访问数据库,而是改为调用中间件 TUXEDO 服务端上的服务,由TUXEDO 服务端访问数据库,并把结果返回给客户端。TUXEDO服务端可以和O

2、RACLE在同一台服务器上,也可以在不同的机器上,如果在不同的机器上,在 TUXEDO 的服务端所在的机器要安装一个ORACLE 的客户端。TUXEDO 服务端与 ORACLE 数据库连接有两种方式:1、不通过 XA 接口直接互连。适用于整个系统只有一个数据库的情况。2、通过 XA 接口互连,对整个系统有一个数据库或多个数据库都适用,建议采用,本文介绍这种互连的配置方法。系统说明名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - -

3、TUXEDO 版本:7.1 安装目录d:tuxedo71 ORACLE 版本:8.1.5 安装目录d:ora81 操作系统:win2000 配置的步骤一、ORACLE 的的配置1用 internal 用户(缺省的口令是oracle)进入 SQLPLUS C:sqlplus internal/oracle 注意:在 9i 数据库需要用如下方法进入E: sqlplus /nolog SQL connect sys as sysdba 请输入口令 : 已连接。2运行 ORACLE 的安装路径下的 /rdbms/admin/xaview.sql SQL d:ora81rdbmsadminxaview.

4、sql 9i 数据库SQL E:oracleora90rdbmsadminxaview.sql 3授权SQLgrant select on v$xatrans$ to public with grant option; SQLgrant select on v$pending_xatrans$ to public with grant option; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - grant select o

5、n pending_trans$ to public; grant select on dba_2pc_pending to public; grant select on dba_pending_transactions to public; 4. 用 system用户(缺省的口令是manager)连接并授权SQLconnect system/manager SQLgrant select any table to public; 二、TUXEDO 的配置1修改 TUXEDO 安装路径的udataobj 目录下的 RM 文件,把以Oracle_XA:xaosw:开头的一行用 #注释掉,并加入

6、一行:Oracle_XA;xaosw;d:ora81rdbmsxaoraxa8.lib d:ora81precomplibmsvcorasql8.lib 8i: Oracle_XA;xaosw;Oracle_Homerdbmsxaoraxa8.lib Oracle_Homeprecomplibmsvcorasql8.lib 9i: Oracle_XA;xaosw;Oracle_Homerdbmsxaoraxa9.lib Oracle_Homeprecomplibmsvcorasql9.lib 如果是在 UNIX 环境下,则为:Oracle_XA:xaosw:-L$ORACLE_HOME/lib

7、 -lclntsh 2. 在 TUXEDO 用户下创建 TMS 文件:TMS_ORA8i ,TUXEDO 通名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 过 TMS_ORA8i 与 ORACLE 数据库采用 XA 协议进行通讯buildtms -o d:tuxedo71binTMS_ORA8i -r Oracle_XA 注意:如果 TUXEDO 服务端与 ORACLE数据库不在同一台服务器上,可能会提示找不到库文件oraxa

8、8.lib 和 orasql8.lib,可到ORACLE数据库的服务端相应目录下把这两个文件拷到当前机器ORACLE 的客户端下的对应目录下。3. 配置 UBBCONFIG (1)在*MACHINES节中增加:TLOGDEVICE = /home/oracle/temp/simpdb/TLOG TLOGNAME=TLOG TLOGSIZE=200 (2)改*GROUPS 节的配置为: (scott/tiger为本数据库所采用的用户及口令,可根据需要更改) *GROUPS GROUP1 LMID=simple GRPNO=1 OPENINFO=Oracle_XA:Oracle_XA+Acc=P/

9、scott/tiger+SesTm=600+MaxCur=5+LogDir=. TMSNAME=TMS_ORA8i TMSCOUNT=2 修改后的配置文件ubb 内容如下,用tmloadcf -y ubb 重新生成tuxconfig IPCKEY 123456 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - DOMAINID simpapp MASTER simple MAXACCESSERS 100 MAXSERVERS 5

10、0 MAXSERVICES 100 MODEL SHM LDBAL N *MACHINES server LMID=simple APPDIR=d:test TUXCONFIG=d:testtuxconfig TUXDIR=d:tux71 TLOGDEVICE = d:testTLOG TLOGNAME=TLOG TLOGSIZE=100 *GROUPS GROUP1 LMID=simple GRPNO=1 OPENINFO=Oracle_XA:Oracle_XA+Acc=P/scott/*+SesTm=600+MaxCur=5+LogDir=. TMSNAME=TMS_ORA8i TMSCO

11、UNT=2 *SERVERS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - DEFAULT: CLOPT=-A test SRVGRP=GROUP1 SRVID=1 *SERVICES 4.重命名下列文件,因为下列文件名与ORACLE 带的文件名有冲突,所以要改名。(1)TUXEDO 安装路径 include目录下的下面文件把 sqlca.h 改名为 sqlca.h.bbb 把 sqlcode.h 改名为 sqlcode.h

12、.bbb 把 sqlda.h 改名为 sqlda.h.bbb (2)重命名 TUXEDO 安装路径 lib 目录下的下面文件把 libsql.lib 改名为 libsql.lib.bbb 5.用 TMADMIN创建 TLOG 文件,TUXEDO 用一个文件 TLOG 记录对数据库操作的日志。用于协调分布式数据库的提交与回滚。D:tmadmin crdl -b 500 -z d:testTLOG crlog -m simple q 三、服务端的程序: test.pc 功能:根据客户端传的EMPNO 到表 EMP 中取 ENAME 的值,并把名师资料总结 - - -精品资料欢迎下载 - - - -

13、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - 它返回给客户端#include #include #include EXEC SQL INCLUDE sqlca; EXEC SQL BEGIN DECLARE SECTION; long al_empno=0; char ac_ename11=; EXEC SQL VAR ac_ename IS STRING(11); EXEC SQL END DECLARE SECTION; TEST(TPSVCINFO *rqst) /*接收客

14、户端来的数据 */ al_empno = (FBFR32 *)rqst-data; EXEC SQL select ename into :ac_ename from EMP where 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - empno=:al_empno; if(sqlca.sqlcode!=0) userlog(select from EMP failure,sqlcode=%ld, sqlerr=%sn,sql

15、ca.sqlcode ,(char *)sqlca.sqlerrm.sqlerrmc); strcpy(rqst-data,sqlca.sqlerrm.sqlerrmc); tpreturn( TPFAIL , 0, rqst-data, 0, 0 ); /*把取出的结果返回给客户端*/ strcpy(rqst-data,ac_ename); tpreturn( TPSUCCESS, 0, rqst-data, 0, 0 ); 四、编写客户端程序 : testcli.c 功能:调用 TUXEDO 服务端的服务 TEST ,取 EMPNO=1000 所对应的 ENAME 的值,并显示出来#inc

16、lude #include atmi.h main(argc, argv) long reqlen=1024; char *reqbuf; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - /* 与 TUXEDO 服务端建立连接*/ if (tpinit(TPINIT *) NULL) = -1) (void) fprintf(stderr, Tpinit failedn); exit(1); /* 分配发送缓冲区 */ req

17、buf = (char *)tpalloc(STRING ,NULL ,reqlen); if ( reqbuf = (char *)NULL) printf(tpalloc failedn); tpterm(); strcpy(reqbuf,1000); /*调用 TUXEDO 的服务 TEST*/ if (tpcall(TEST , (char *)reqbuf, 0L, (char *)&reqbuf , (long *)&reqlen , 0 proc test.pc include=%TUXDIR%/include 2.用 buildserver 把 test.c 编 译 成 可执行

18、 文 件, 注意 -r 后带的Oracle_XA 与 RM 文件中的一致。d:test buildserver -o simpserv -f simpserver.c -r Oracle_XA -s TEST 六、编译客户端程序d:test buildclient -o testcli -f testcli.c 七、用 tmboot y 启动 TUXEDO 应能看到所有的SERVER 都启动成功。这时,我们的服务端程序test 会自动与ORACLE数据库建立连接,并一直保持这个连接,直到TUXEDO 系统或 ORACLE 数据库关闭。所以在我们的程序test.pc名师资料总结 - - -精品资

19、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 中 看 不 到与 数 据 库连 接 的 语句 , 因 为现 在 与 数据库 的 连接 由TUXEDO 自动管理。如果 TMS_ORA8i 启动失败会在当前目录生成一个*.trc 文件,记录失败的原因,同时TUXEDO 的 ULOG 文件中也会有一些错误信息。可参考这些错误信息进行错误分析。d:test tmboot -y exec TMS_ORA8i-A : process id=1072 . Starte

20、d. exec TMS_ORA8i-A : process id=528 . Started. exec test -A : process id=876 . Started. 八、运行客户端程序运行后应能看到服务端返回的结果。d:test testcli name=bill 到此,整个配置过程就大功告成了。ORACLE 的其他版本的配置及在其他操作系统上的配置基本与本文所述差不多,差别主要在RM文件中所连的库文件可能会不样。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁