TUXEDO与ORACLE数据库的互连

更新时间:2023-09-30 08:30:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

TUXEDO与ORACLE数据库的互连

[转]TUXEDO与ORACLE数据库的互连

(来源:http://www.ccw.com.cn) 前言

在银行、电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操作系统、数据库并列为三大基础软件。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${ORACLE_HOME}/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 = \TLOGNAME=TLOG TLOGSIZE=200

(2)改*GROUPS节的配置为:(scott/tiger为本数据库所采用的用户及口令,可根据需要更改) *GROUPS

GROUP1 LMID=simple GRPNO=1

OPENINFO=\TMSNAME=\

修改后的配置文件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=\

TUXCONFIG=\TUXDIR=\

TLOGDEVICE = \TLOGNAME=TLOG TLOGSIZE=100 *GROUPS

GROUP1 LMID=simple GRPNO=1

OPENINFO=\TMSNAME=\*SERVERS DEFAULT: CLOPT=\

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 #include #include

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)

本文来源:https://www.bwwdw.com/article/acfd.html

Top