收藏 分销(赏)

TUXEDO与ORACLE数据库的互连.doc

上传人:仙人****88 文档编号:11739774 上传时间:2025-08-11 格式:DOC 页数:7 大小:38.50KB 下载积分:10 金币
下载 相关 举报
TUXEDO与ORACLE数据库的互连.doc_第1页
第1页 / 共7页
TUXEDO与ORACLE数据库的互连.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
TUXEDO与ORACLE数据库的互连   在银行、电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操作系统、数据库并列为三大基础软件。BEA Tuxedo作为最优秀的中间件产品,在我国的很多行业中广泛使用,本文通过一个简单的例子介绍如何在TUXEDO中访问ORACLE数据库。 在两层的C/S结构中,客户端直接访问数据库,当采用TUXEDO中间件后,形成三层结构。这时,客户端不直接访问数据库,而是改为调用中间件TUXEDO服务端上的服务,由TUXEDO服务端访问数据库,并把结果返回给客户端。TUXEDO服务端可以和ORACLE在同一台服务器上,也可以在不同的机器上,如果在不同的机器上,在TUXEDO的服务端所在的机器要安装一个ORACLE的客户端。 TUXEDO服务端与ORACLE数据库连接有两种方式:   1、不通过XA接口直接互连。适用于整个系统只有一个数据库的情况。   2、通过XA接口互连,对整个系统有一个数据库或多个数据库都适用,建议采用,本文介绍这种互连的配置方法。   在银行、电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操作系统、数据库并列为三大基础软件。BEA Tuxedo作为最优秀的中间件产品,在我国的很多行业中广泛使用,本文通过一个简单的例子介绍如何在TUXEDO中访问ORACLE数据库。 在两层的C/S结构中,客户端直接访问数据库,当采用TUXEDO中间件后,形成三层结构。这时,客户端不直接访问数据库,而是改为调用中间件TUXEDO服务端上的服务,由TUXEDO服务端访问数据库,并把结果返回给客户端。TUXEDO服务端可以和ORACLE在同一台服务器上,也可以在不同的机器上,如果在不同的机器上,在TUXEDO的服务端所在的机器要安装一个ORACLE的客户端。 TUXEDO服务端与ORACLE数据库连接有两种方式:   1、不通过XA接口直接互连。适用于整个系统只有一个数据库的情况。   2、通过XA接口互连,对整个系统有一个数据库或多个数据库都适用,建议采用,本文介绍这种互连的配置方法。 [转]TUXEDO与ORACLE数据库的互连 (来源:) 前言   在银行、电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操作系统、数据库并列为三大基础软件。BEA Tuxedo作为最优秀的中间件产品,在我国的很多行业中广泛使用,本文通过一个简单的例子介绍如何在TUXEDO中访问ORACLE数据库。 在两层的C/S结构中,客户端直接访问数据库,当采用TUXEDO中间件后,形成三层结构。这时,客户端不直接访问数据库,而是改为调用中间件TUXEDO服务端上的服务,由TUXEDO服务端访问数据库,并把结果返回给客户端。TUXEDO服务端可以和ORACLE在同一台服务器上,也可以在不同的机器上,如果在不同的机器上,在TUXEDO的服务端所在的机器要安装一个ORACLE的客户端。 TUXEDO服务端与ORACLE数据库连接有两种方式:   1、不通过XA接口直接互连。适用于整个系统只有一个数据库的情况。   2、通过XA接口互连,对整个系统有一个数据库或多个数据库都适用,建议采用,本文介绍这种互连的配置方法。   在银行、电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操作系统、数据库并列为三大基础软件。BEA Tuxedo作为最优秀的中间件产品,在我国的很多行业中广泛使用,本文通过一个简单的例子介绍如何在TUXEDO中访问ORACLE数据库。 在两层的C/S结构中,客户端直接访问数据库,当采用TUXEDO中间件后,形成三层结构。这时,客户端不直接访问数据库,而是改为调用中间件TUXEDO服务端上的服务,由TUXEDO服务端访问数据库,并把结果返回给客户端。TUXEDO服务端可以和ORACLE在同一台服务器上,也可以在不同的机器上,如果在不同的机器上,在TUXEDO的服务端所在的机器要安装一个ORACLE的客户端。 TUXEDO服务端与ORACLE数据库连接有两种方式:   1、不通过XA接口直接互连。适用于整个系统只有一个数据库的情况。   2、通过XA接口互连,对整个系统有一个数据库或多个数据库都适用,建议采用,本文介绍这种互连的配置方法。 系统说明   TUXEDO版本:7.1 安装目录 d: uxedo71 ORACLE版本:8.1.5 安装目录 d:ora81 操作系统: win2000 配置的步骤   一、ORACLE的的配置 1.用internal用户(缺省的口令是oracle)进入SQLPLUS C:>sqlplus internal/oracle 2.运行ORACLE的安装路径下的/rdbms/admin/xaview.sql SQL> @d:ora81 dbmsadminxaview.sql 3.授权 SQL>grant select on v$xatrans$ to public with grant option; SQL>grant select on v$pending_xatrans$ to public with grant option; 4. 用system用户(缺省的口令是manager)连接并授权 SQL>connect system/manager SQL>grant select any table to public; 二、TUXEDO的配置 1.修改TUXEDO安装路径的udataobj目录下的RM文件,把以Oracle_XA:xaosw:开头的一行用#注释掉,并加入一行: Oracle_XA;xaosw;d:ora81 dbmsxaoraxa8.lib d:ora81precomplibmsvcorasql8.lib 如果是在UNIX环境下,则为: Oracle_XA:xaosw:-L$/lib -lclntsh 2. 在TUXEDO用户下创建TMS文件:TMS_ORA8i,TUXEDO通过TMS_ORA8i与ORACLE数据库采用XA协议进行通讯 buildtms -o d: uxedo71inTMS_ORA8i -r Oracle_XA   注意:如果TUXEDO 服务端与ORACLE数据库不在同一台服务器上,可能会提示找不到 库文件oraxa8.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/scott/tiger+SesTm=600+MaxCur=5+LogDir=." TMSNAME="TMS_ORA8i" TMSCOUNT=2 修改后的配置文件ubb内容如下,用tmloadcf -y ubb重新生成tuxconfig IPCKEY 123456 DOMAINID simpapp MASTER simple MAXACCESSERS 100 MAXSERVERS 50 MAXSERVICES 100 MODEL SHM LDBAL N   *MACHINES server LMID=simple APPDIR="d: est" TUXCONFIG="d: est uxconfig" TUXDIR="d: ux71" TLOGDEVICE = "d: estTLOG" TLOGNAME=TLOG TLOGSIZE=100 *GROUPS GROUP1 LMID=simple GRPNO=1 OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=600+MaxCur=5+LogDir=." TMSNAME="TMS_ORA8i" TMSCOUNT=2 *SERVERS DEFAULT: CLOPT="-A" test SRVGRP=GROUP1 SRVID=1 *SERVICES    4.重命名下列文件,因为下列文件名与ORACLE带的文件名有冲突,所以要改名。 (1)TUXEDO安装路径include目录下的下面文件 把sqlca.h 改名为 sqlca.h.bbb 把sqlcode.h 改名为 sqlcode.h.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: estTLOG >crlog -m simple >q    三、服务端的程序:test.pc 功能:根据客户端传的EMPNO到表EMP中取ENAME的值,并把它返回给客户端 #include <stdio.h> #include <atmi.h> #include <userlog.h>   EXEC SQL INCLUDE sqlca;   EXEC SQL BEGIN DECLARE SECTION; long al_empno=0; char ac_ename[11]="";   EXEC SQL VAR ac_ename IS STRING(11);  EXEC SQL END DECLARE SECTION;     TEST(TPSVCINFO *rqst) {   /*接收客户端来的数据*/ al_empno = (FBFR32 *)rqst->data;   EXEC SQL select ename into :ac_ename from EMP where empno=:al_empno; if(sqlca.sqlcode!=0) {  userlog("select from EMP failure,sqlcode=%ld, sqlerr=%s ",sqlca.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的值,并显示出来 #include <stdio.h> #include "atmi.h"    main(argc, argv) { long reqlen=1024; char *reqbuf;   /* 与TUXEDO服务端建立连接 */ if (tpinit((TPINIT *) NULL) == -1) { (void) fprintf(stderr, "Tpinit failed "); exit(1); } /* 分配发送缓冲区*/ reqbuf = (char *)tpalloc("STRING",NULL,reqlen); if ( reqbuf == (char *)NULL) { printf("tpalloc failed "); tpterm(); } strcpy(reqbuf,"1000"); /*调用TUXEDO的服务TEST*/ if (tpcall("TEST", (char *)reqbuf, 0L, (char **)&reqbuf, (long *)&reqlen, 0< 0 ) { printf("tpcall failed,tperrno=%ld,tperrtext=%s ",tperrno,tpstrerror(tperrno)); tpfree(reqbuf); tpterm(); exit(1); } printf("name=%s ",reqbuf); tpfree(reqbuf); tpterm(); return(0); } 五、编译服务端程序 1.用ORACLE的PROC把test.pc 文件预编译成test.c文件 d: est> proc test.pc include=%TUXDIR%/include 2.用buildserver把test.c编译成可执行文件,注意-r 后带的Oracle_XA 与RM文件中的一致。 d: est> buildserver -o simpserv -f simpserver.c -r Oracle_XA -s TEST 六、编译客户端程序 d: est> buildclient -o testcli -f testcli.c 七、用 tmboot –y 启动TUXEDO   应能看到所有的SERVER都启动成功。这时,我们的服务端程序test 会自动与ORACLE数据库建立连接,并一直保持这个连接,直到TUXEDO系统或ORACLE数据库关闭。所以在我们的程序test.pc中看不到与数据库连接的语句,因为现在与数据库的连接由TUXEDO自动管理。如果TMS_ORA8i启动失败会在当前目录生成一个*.trc文件,记录失败的原因,同时TUXEDO的ULOG文件中也会有一些错误信息。可参考这些错误信息进行错误分析。 d: est> tmboot -y exec TMS_ORA8i-A : process id=1072 ... Started. exec TMS_ORA8i-A : process id=528 ... Started. exec test -A : process id=876 ... Started. 八、运行客户端程序 运行后应能看到服务端返回的结果。 d: est> testcli name=bill 到此,整个配置过程就大功告成了。ORACLE的其他版本的配置及在其他操作系统上的配置基本与本文所述差不多,差别主要在RM文件中所连的库文件可能会不样。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服