Chinaunix首页 | 论坛 | 博客
  • 博客访问: 442646
  • 博文数量: 142
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 1861
  • 用 户 组: 普通用户
  • 注册时间: 2005-06-03 21:00
文章分类

全部博文(142)

文章存档

2011年(3)

2010年(32)

2009年(107)

我的朋友

分类:

2009-11-20 12:39:16

前言
在银行、电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操作系统、数据库并列为三大基础软件。BEA Tuxedo作为最优秀的中间件产品,在我国的很多行业中广泛使用,本文通过一个简单的例子介绍如何在TUXEDO中访问ORACLE数据库。
在两层的C/S结构中,客户端直接访问数据库,当采用TUXEDO中间件后,形成三层结构。这时,客户端不直接访问数据库,而是改为调用中间件TUXEDO服务端上的服务,由TUXEDO服务端访问数据库,并把结果返回给客户端。TUXEDO服务端可以和ORACLE在同一台服务器上,也可以在不同的机器上,如果在不同的机器上,在TUXEDO的服务端所在的机器要安装一个ORACLE的客户端。
TUXEDO服务端与ORACLE数据库连接有两种方式:
1、不通过XA接口直接互连。适用于整个系统只有一个数据库的情况。
2、通过XA接口互连,对整个系统有一个数据库或多个数据库都适用,建议采用,本文介绍这种互连的配置方法。
系统说明
TUXEDO版本:8.1 安装目录 d:\progra~1\tuxedo8.1
ORACLE版本:9.1 安装目录 d:\oracle\ora91
操作系统: winxp
配置的步骤使用PL/SQL下command window

一、ORACLE的的配置 (对需要使用的数据库进行)
1.用SYS用户(口令是123456)进入PL/SQL
2.运行ORACLE的安装路径下的/rdbms/admin/xaview.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;
SQL>grant select any table to public;

二、TUXEDO的配置 ()
1.修改TUXEDO安装路径的udataobj目录下的RM文件,把以Oracle_XA:xaosw:开头的一行用#注释掉,并加入一行:(安装tuxedo后要进行,如果oracle版本,目录不变,就不用改)
Oracle_XA;xaosw;d:\oracle\ora91\rdbms\xa\oraxa9.lib d:\oracle\ora91\precomp\lib\msvc\orasql9.lib
2. 在TUXEDO用户下创建TMS文件:TMS_ORA8i,TUXEDO通过TMS_ORA8i与ORACLE数据库采用XA协议进行通讯
buildtms -o d:\progra~1\tuxedo8.1\bin\TMS_ORA9i -r Oracle_XA
 
注意:如果TUXEDO 服务端与ORACLE数据库不在同一台服务器上,可能会提示找不到库文件oraxa9.lib和orasql9.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
*RESOURCES
IPCKEY 123456
DOMAINID simpapp
MASTER simple
MAXACCESSERS 10
MAXSERVERS 5
MAXSERVICES 10
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
APPDIR="F:\tuxtest"
TUXCONFIG="F:\tuxtest\tuxconfig"
TUXDIR="d:\Progra~1\tuxedo8.1"
TLOGDEVICE = " F:\tuxtest \TLOG"
TLOGNAME=TLOG
TLOGSIZE=100
MS1CYD LMID=simple
*GROUPS
GROUP1 LMID=simple GRPNO=1
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/test/123456+SesTm=600+MaxCur=5+LogDir=."
TMSNAME="TMS_ORA9i" TMSCOUNT=2
*SERVERS
DEFAULT:
CLOPT="-A"
testserv SRVGRP=GROUP1 SRVID=1
*SERVICES
TEST
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记录对数据库操作的日志。用于协调分布式数据库的提交与回滚。 (都必须建立,与ubb相关)
D:\>tmadmin
>crdl -b 500 -z f:\tuxtest\TLOG
>crlog -m simple //simple为MASTER的值
>q
 
 
test用户:建立数据库,字段:     empno          integer
                             ename          char(10)
         数据库中至少放入有empno=1000的值
阅读(855) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~