TXSeries入门系列文章9

#db2 catalog database test1 as demo1 at node node1

通过运行终止命令刷新上面的目录设置。

#db2 terminate

参阅:

关于catalog TCP/IP node

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0001944.html?cp=SSEPGG_10.5.0%2F3-6-2-4-17&lang=en

关于catalog database

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0001936.html?cp=SSEPGG_10.5.0%2F3-6-2-4-10&lang=en

2)测试到DB2服务器的连接

在配置regionDB2之前,可以测试 DB2服务器和客户端的所有设置是否是有效的。下面通过DB2客户端连接服务器,并查看表student是否存在。

#db2 connect to demo1 user cics using passw0rd

#db2 list tables for schema db2inst1

如果一切正常,将看到下列响应:

Table/View Schema Type Creation time

——————————- ————— —– ————————–

STUDENT DB2INST1 T 2014-11-21-16.41.44.144932

1 record(s) selected.

3TXSeries region配置

本步骤中将创建一个region,添加XAD和环境变量,并准备switch load file来保证region能够使用XA协议进行连接。

a. 创建一个名为DB2region

#cicscp -v create region DB2

b. 准备switch load file

TXSeries提供了两个switch load file,包括一阶段提交(cics1pcdb2)和两阶段提交(cicsxadb2)。将它们复制到regionbin目录下。

#cp /opt/ibm/cics/bin/cicsxadb2 /var/cics_regions/DB2/bin

#cp /opt/ibm/cics/bin/cics1pcdb2 /var/cics_regions/DB2/bin

除了使用TXSeries提供的文件,也可以自己编译switch load file

c. 添加32位共享对象

之前提到过,当使用XA协议连接时,TXSeries提供的switch load file需要32位共享对象。在本部分示例中,需要libaudit.so.0libpam.so.0,因为客户端机器是64位的。从一个32位系统复制文件/lib/libaudit.so.0.0.0/lib/libpam.so.0.83.1,并如下做两个符号链接:

ln -s /lib/libaudit.so.0.0.0 /lib/libaudit.so.0

ln -s /lib/libpam.so.0.83.1 /lib/libpam.so.0

也可以安装 pamaudit32rpm包。

d. region环境配置(使用一阶段提交)

#vi /var/cics_regions/DB2/environment

添加如下指定服务器实例名称的变量对。

DB2INSTANCE=db2inst1

e. 添加XAD

注意,这个XAD中的XAOpen字符串不同于MQ中的——DB是远程数据库名称或者别名,UID是有权限连接数据库的用户名称,PWD是这个用户的密码。对于SwitchLoadFile属性,可以随意使用一阶段提交或两阶段提交。

例如一阶段提交:

#cicsadd -c xad -r DB2 DB2XAD ResourceDescription=”XA connect to DB2″

XAOpen=”DB=demo1,UID=cics,PWD=passw0rd” SwitchLoadFile=”cics1pcdb2″

两阶段提交:

#cicsadd -c xad -r DB2 DB2XAD ResourceDescription=”XA connect to DB2″

XAOpen=”DB=demo1,UID=cics,PWD=passw0rd” SwitchLoadFile=”cicsxadb2″

参阅:

http://www-01.ibm.com/support/knowledgecenter/SSAL2T_8.1.0/com.ibm.cics.tx.doc/tasks/t_conf_rm_re_db_1.html?lang=en

f. 冷启动region

#cicscp -v start region DB2 StartType=cold

在执行这条命令后,region将自动连接到指定的数据库。查看region中最新的console.nnnnnn文件,如果其中有如下所示的消息,恭喜,你的region已经成功地连接到数据库。

ERZ080088I/0801 11/26/14 04:11:23.258039000 DB2 25407/0001 : XA OPEN submitted for Server 104 connected to ‘DB2 for LINUX’ using XA_OPEN string ‘DB=demo1,UID=cics,PWD=######’

ERZ080006I/0801 11/26/14 04:11:23.356102000 DB2 25407/0001 : XA_OPEN succeeded: Application Server 104 connected to ‘DB2 for LINUX’ using XA_OPEN string

‘DB=demo1,UID=cics,PWD=######’

ERZ080089I/0801 11/26/14 04:11:23.356183000 DB2 25407/0001 : XA OPEN completed for Server 104 connected to ‘DB2 for LINUX’ using XA_OPEN string ‘DB=demo1,UID=cics,PWD=######’

4)编译应用程序并添加PDTD

Unit 3/Part4 DB2目录复制所有的文件到regionbin目录中。总共有三个文件:包含嵌入式SQL命令的应用程序源代码db2test.sqc文件; 会将db2test.sqc预编译为C代码,修改后缀为”.ccs“,然后使用”cicstcl“去编译应用程序的db2test.mk文件; 包含编译和连接选项的env_c.def文件。

a. 编辑文件

在编译前,env_c.def中的一些编译和连接选项的路径可能需要根据实际环境进行修改。另外,注意db2test.sqc中的下列变量:

DATABASE=<database local alias>

SCHEMA=<schema of database on server>

DB2DIR=<db2 installation directory>

USER=<user name>

PASSWORD=<password>

在本部分的示例中,变量值应该是:

DATABASE=demo1

SCHEMA=db2inst1

DB2DIR=/opt/ibm/db2/V10.5

USER=cics

PASSWORD=passw0rd

b. 编译应用程序

#make -f db2test.mk

c. 添加PDTD

#cicsadd -cpd -r DB2 -B db2test PathName=db2test RSLKey=public

#cicsadd -ctd -r DB2 -B DB21 ProgName=db2test

到目前为止,已经完成了客户端的配置。请用户查看一下应用程序是否运行良好。

7. 故障排除

1/opt/ibm/db2/V10.5路径下没有include目录或者include目录只包含一个文件

在安装DB2服务器或客户端时,选择了”典型的”或”压缩的”安装类型。这些文件对于开发应用程序是非常重要的。所以,用户可以从相似的环境中复制这个目录或者使用”自定义”类型重新安装DB2。请仔细阅读卸载指导。

参阅:

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.qb.server.doc/doc/t0007439.html?lang=en

2)通过DB2客户端连接DB2服务器失败并收到下列消息:

SQL30081N A communication error has been detected. Communication protocol being used: “TCP/IP”. Communication API being used: “SOCKETS”. Location where the error was detected: “9.119.154.229”. Communication function detecting the error: “connect”. Protocol specific error code(s): “111”, “*”, “*”. SQLSTATE=08001

查看服务器端机器的防火墙并确保用于连接的端口是有效的。

8. 编译switch load file

1)一阶段提交

需要”/opt/ibm/cics/example/RM_support/DB2“目录下的db21pc.cdb21pc.mk文件。修改db21pc.mk文件中第88行,将”db2 connect to $(DBNAME); \“改为”db2 connect to <database name/alias> user <user name> using <passw0rd>; \“。例如:”db2 connect to demo1 user db2inst1 using passw0rd; \“。

通过下列命令编译:

#make -f db21pc.mk

2)两阶段提交

需要”/opt/ibm/cics/example/RM_support/DB2“目录下的db2xa.cdb2xa.mk文件。通过下列命令编译:

#make -f db2xa.mk

9. 练习

根据本部分中的步骤配置TXSeries 连接DB2,并通过执行应用程序进行测试。

TXSeries入门系列文章单元三
数据管理
三部分 TDQ/TSQ


     


如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注