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


以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營