[转帖]Tuxedo与DB2数据库的连接_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3784 | 回复: 1   主题: [转帖]Tuxedo与DB2数据库的连接        下一篇 
风往北吹
注册用户
等级:下士
经验:173
发帖:6
精华:0
注册:2012-12-19
状态:离线
发送短消息息给风往北吹 加好友    发送短消息息给风往北吹 发消息
发表于: IP:您无权察看 2012-12-20 9:40:15 | [全部帖] [楼主帖] 楼主

tuxedo与数据库的联系非常密切,而且与多种主流数据库的连接区别的配置过程不大,在下文中介绍Tuxedo8.1与DB2的连接配置。

试验环境:Tuxedo8.1, DB2 v8,Windows平台

试验步骤:

设置环境变量

设置DB2INSTANCE环境变量,以引用包含您希望Tuxedo使用的数据库实例。在本例中,我使用DB2样本数据库SAMPLE,它位于DB2这个 数据库实例中,所以我的环境变量设置就是SET DB2INSTANCE=DB2,如果应用中的配置保持一定,也可以将其写入用户环境变量中。

在PATH环境变量中加入C:\IBM\BIN(C:\IBM为DB2的安装路径)

确认可以在当前用户下连接DB2数据库,即在DB2命令窗口中敲入DB2 CONNECT TO SAMPLE可以连接成功

配置DB2数据库程序参数TP_MON_NAME

在DB2命令窗口中键入DB2 GET DBM CFG,会列出当前数据库的配置参数,其中有一项为TP_MON_NAME,需要更新使用命令

>DB2 UPDATE DBM CFG USING TP_MON_NAME TUXEDO


要使更改生效,需要重起实例,所以需要继续敲入下列命令:

>DB2STOP
>DB2START


将DB2的定义添加至Tuxedo资源管理器程序的定义文件中,在下面的示例中,UDB_XA是为DB2在本地的定义的Tuxedo资源管理程序名,而db2xa_switch是类型为xa_switch_t的一个结构的DB2定义的名称

2 对于AIX,在文件{TUXDIR}/udataobj/RM中,添加定义:

# DB2 UDB
UDB_XA:db2xa_switch:-L{DB2DIR} /lib -ldb2


其中,{TUXDIR}是安装了Tuxedo的目录,而{DB2DIR}是DB2实例目录。

2 对于Window NT,在文件%TUXDIR%\udataobj\rm中,添加定义:

# DB2 UDB
UDB_XA;db2xa_switch;%DB2DIR%libdb2api.lib


其中,%TUXDIR%是安装了Tuxedo的目录,而%DB2DIR%是DB2实例目录。

为DB2构建Tuxedo事务监控程序服务器程序:

2 对于AIX:

{TUXDIR}/bin/buildtms -r UDB_XA -o {TUXDIR}/bin/TMS_UDB


其中,{TUXDIR}是安装了Tuxedo的目录。

2 对于Windows NT:

%TUXDIR%binbuildtms -r UDB_XA -o %TUXDIR%binTMS_UDB


操作成功后,会在%TUXDIR%\bin下产生一个TMS_UDB.exe

注:buildtms命令不接受带空格的命令。我原本安装DB2的标准安装,把DB2安装在C:\ Program Files\IBM\SQLLIB中,但是在buildtms中,总是不能通过,所以我重新将DB2安装在C:\IBM下,buildtms命令顺利通过。

构建应用服务器,在下面的示例中,-r选项指定资源管理程序名,-f选项(使用的一次或多次)指定包含应用程序服务的文件,-s选项指定此服务器的应用程序服务名,而-o选项指定输出服务器文件名:

编写DB2的嵌入式Sql文件DB2.sqc,嵌入式sql语法和Oracle基本一致

预编译DB2嵌入式Sql文件,在DB2命令窗口中键入如下命令:

>DB2 PREP %APPDIR%DB2.SQC BINDFILE


生成DB2.c文件,和一个用于和数据库绑定的DB2.BND文件

将数据库与应用绑定,在DB2命令窗口中键入如下命令:

>DB2 BIND %APPDIR%DB2.BND


成功后即可将应用与数据库绑定

编译生成Tuxedo Server:

需要先修改一些DB2和Tuxedo冲突的头文件:

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

2 对于AIX:

{TUXDIR}/bin/buildserver -r UDB_XA -f svrFile.c -s svcName -o UDBserver


其中%TUXDIR%是安装了Tuxedo的目录

2 对于Window NT:

%TUXDIR%binbuildserver -r UDB_XA -f svrFile.c -s svcName -o UDBserver


其中%TUXDIR%是安装了Tuxedo的目录。

设置Tuxedo配置文件以引用DB2服务器。

在UBBCONFIG文件的*GROUPS的小节中,添加类似如下的项:

UDB_GRP LMID=simp GRPNO=3
TMSNAME=TMS_UDB TMSCOUNT=2
OPENINFO="UDB_XA:db=sample,uid=db2_user,pwd=db2_user_pwd"


其中,TMSNAME参数指定您先前构建的事务监控程序的服务器程序,而OPENINFO参数指定资源管理器程序名。其后是数据库名称和DB2用户和口令,其中口令可以输入*****,在tmloadcf过程中会提示你输入相应密码。

在*SERVERS节中加入您先前构建的应用服务器,如本例中的Tuxedo Server名为DB2,所以设置:

*SERVERS
DEFAULT:
CLOPT="-A"
DB2 SRVGRP=GROUP1 SRVID=1


启动Tuxedo:

先用tmadmin创建TLOG文件,TUXEDO用一个文件TLOG记录对数据库操作的日志。用于协调分布式数据库的提交与回滚.

>tmadmin
>crdl -b 500 -z %APPDIR%TLOG
>q
tmboot -y


在该命令完成之后,Tuxedo信息应指示服务器已启动。




赞(0)    操作        顶端 
风往北吹
注册用户
等级:下士
经验:173
发帖:6
精华:0
注册:2012-12-19
状态:离线
发送短消息息给风往北吹 加好友    发送短消息息给风往北吹 发消息
发表于: IP:您无权察看 2012-12-20 9:44:22 | [全部帖] [楼主帖] 2  楼

从没见过的好帖 北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论