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…

     

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