TXSeries入門系列文章15

4)修改region環境變量文件

環境變量文件(environment)在region的根目錄下,下面的變量應該根據實際情況添加到文件中。

ORACLE_HOME=/usr/local/oracle

ORACLE_SID=MYDB

5)編譯示例應用程序

oracletest.pcoracletest.mkenv_c.def文件位於”/Unit 3/Part5 Oracle/“目錄下。用戶可以隨意修改oracletest.pc中的嵌入式SQL命令。

oracletest.mkoracletest.pc中的源代碼預編譯為C代碼,將後綴改為”.ccs“,然後運行”cicstcl“來翻譯、編譯和連接應用程序,類似於DB2示例中的makefile

運行下列命令生成示例應用程序:

make -f oracletest.mk

6)添加PDTD

#cicsadd -cpd -r oracle oratest PathName=oracletest RSLKey=public

#cicsadd -ctd -r oracle ORA1 ProgName=oratest

現在就可以通過運行交易ORA1來測試應用程序,並查看返回值是否正確。

7)冷啟動region

首先,確保所有的oracle環境變量是有效的。

#. /home/oracle/.bash_profile

然後運行冷啟動命令。

#cicscp -v start region oracle StartType=cold

如果一切運行正常,將在console.nnnnnn文件中看到下列日誌:

ERZ080088I/0801 10/29/14 22:29:17.870013000 oracle 13774/0001 : XA OPEN submitted for Server 101 connected to ‘Oracle Single Phase’ using XA_OPEN string ‘Oracle_XA+SQLNET=MYDB+Acc=P/scott/######+SesTm=35+LogDir=/tmp/cics/oracle+DbgFl=1’

ERZ080006I/0801 10/29/14 22:29:20.358823000 oracle 13774/0001 : XA_OPEN succeeded:

Application Server 101 connected to ‘Oracle Single Phase’ using XA_OPEN string ‘Oracle_XA+SQLNET=MYDB+Acc=P/scott/######+SesTm=35+LogDir=/tmp/cics/oracle+DbgFl=1’

ERZ080089I/0801 10/29/14 22:29:20.358895000 oracle 13774/0001 : XA OPEN completed for Server 101 connected to ‘Oracle Single Phase’ using XA_OPEN string ‘Oracle_XA+SQLNET=MYDB+Acc=P/scott/######+SesTm=35+LogDir=/tmp/cics/oracle+DbgFl=1’

4. 注意

1)在通過sqlplus命令更新、刪除和插入數據後,應該執行提交命令 。否則,應用程序不能修改那些數據,因為在修改被提交前它們是鎖定的。

2)時刻注意,在執行需要Oracle環境變量支持的操作之前運行”/home/oracle/.bash_profile“文件。

5. 練習

根據本部分中的步驟配置TXSeries 連接Oracle,並通過執行應用程序進行測試。

TXSeries入門系列文章單元三
數據管理
五部分 Oracle

三單元 數據管理

第五部分 Oracle

關於本部分

除了DB2Oracle是另一個常用的數據庫。所以在本部分,將會介紹TXSeries通過XA協議連接Oracle數據庫的所有指令,並提供一個應用程序進行測試。大多數步驟和DB2的配置相似,所以如果用戶已經完成了前一部分的內容,完成本部分將非常容易。開始前請確保Oracle的服務器和客戶端已經成功地安裝。

1. Oracle服務器配置

在服務器端,需要完成數據庫的準備工作,包括啟動數據庫、創建示例視圖、解鎖用戶並賦予權限。關於Oracle命令的詳細信息不會在本部分提及,可以通過Oracle提供的文檔查看。

1)啟動監聽器和數據庫

#lsnrctl start

#sqlplus /nolog

SQL>conn /as sysdba

SQL>startup

2)使用sys用戶運行示例SQL命令創建 支持XA協議的視圖

SQL>conn sys as sysdba

SQL>@/home/oracle/app/oracle/product/12.1.0/dbhome_1/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 on scott.emp to scott;

SQL>grant select on dba_pending_transactions to scott;

4)解鎖scott用戶

本部分使用示例賬戶scott通過XA協議連接數據庫服務器,首先需要解鎖scott賬戶。

SQL>alter user scott account unlock

2. Oracle客戶端配置

1)修改tnsnames.ora文件

為了連接Oracle服務器,需要在tnsnames.ora文件中定義連接信息。這個文件在”/usr/local/oracle“目錄下。如下對它進行編輯:

MYDB =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 9.119.154.229)(PORT = 1521))

    )

  (CONNECT_DATA =

    (SID = orcl)

    (SERVER = DEDICATED)

  )

)

MYDB是本地數據庫名稱,將在XAOpen字符串中使用;HOST的值是服務器機器的地址;PORT是服務器將要監聽的端口,默認值是1521SID的值是在安裝Oracle服務器時指定的全局數據庫名稱。

請記住在防火牆中啟用端口1521

2)使用scott用戶連接服務器並查看稍後將使用的示例數據

首先以用戶scott的身份使用本地數據庫名稱MYDB連接全局數據庫orcl

#sqlplus /nolog

SQL>conn scott@MYDB

Enter password:tiger

Connected.

然後通過SQL命令選擇表”emp“中的所有記錄。

SQL>select * from emp;

將會獲得如下的記錄(分區內容):

EMPNO ENAME JOB MGR HIREDATE SAL COMM

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

DEPTNO

————–

7844 TURNER SALESMAN 7698 08-SEP-81 1500 0

30

7876 ADAMS CLERK 7788 23-MAY-87 1100

20

7900 JAMES CLERK 7698 03-DEC-81 950

30

3. region配置

1)創建一個名為oracleregion

#cicscp -v create region oracle

2)編譯switch load file

TXSeries 在”/opt/ibm/cics/examples/RM_support/Oracle“目錄中為用戶提供了switch load file源代碼和makefile文件。複製文件”oracle1pc.pc“和”oracle1pc.mk“到regionbin目錄下。

a. 如下修改oracle1pc.mk文件的前兩行:

    ORA_PRECOMP = $(ORACLE_HOME)/sdk/proc

LD_FLAGS_oracle = -L$(ORACLE_HOME) -lclntsh -R$(ORACLE_HOME)

    或者根據具體環境編輯它們,這取決於Oracle客戶端的安裝位置。

b. 編輯預編譯配置文件pcscfg.cfg

文件位於”$(ORACLE_HOME)/precomp/admin/“目錄,oracle預編譯器會讀取其中的變量,所以必須根據實際系統適當地設置其中的內容,否則可能出現錯誤。例如本部分示例中的內容為:

sys_include=(/usr/local/oracle/sdk/include,/usr/lib64/gcc/x86_64-suse-linux/4.3/include,/usr/include) ltype=short

如果用戶的環境不同,請參考下列網站決定變量的選取。

參閱:

http://stackoverflow.com/questions/325826/oracle-10-2-proc-precompiler-not-reading-header-file

c.switch load file中添加#include <string.h>語句

oracle1pc.pc文件開頭添加”#include <string.h>“,否則可能收到關於函數中字符串不兼容的警告。

以下文章點擊率最高

Loading…

     

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