d. 添加符号链接
当连接switch load file时,需要用到共享库”libclntsh.so“,但是在路径”/usr/local/oracle“下只有libclntsh.so.12.1。所以需要通过如下命令创建一个符号链接:
#ln -s /usr/local/oracle/libclntsh.so.12.1 /usr/local/oracle/libclntsh.so
e.运行oracle的环境变量文件
#. /home/oracle/.bash_profile
因为其中包含编译时必需的一些环境变量。
f.运行下列命令编译switch load file
#make -f oracle1pc.mk oracle
如果一切顺利,将在当前目录下发现名为oracle1pc的switch load file。
(3)添加XAD
注意XAD中的XAOpen字符串,可能需要修改的内容以”<>“标记。
cicsadd -c xad -r <region name> <XAD entry name> SwitchLoadFile=”<path of switch load file>”
XAOpen=”Oracle_XA+SQLNET=<local database name>+Acc=P/<user
name>/<password>+SesTm=35+LogDir=/tmp/cics/oracle+DbgFl=1″
<local database name> 是你添加在tnsnames.ora文件中的。
在本部分的示例中,<user name>是scott,<password>是tiger。
例如:
cicsadd -c xad -r oracle oraxa SwitchLoadFile=”oracle1pc”
XAOpen=”Oracle_XA+SQLNET=MYDB+Acc=P/scott/tiger+SesTm=35+LogDir=/tmp/cics/oracle+DbgFl=1″
(4)修改region环境变量文件
环境变量文件(environment)在region的根目录下,下面的变量应该根据实际情况添加到文件中。
ORACLE_HOME=/usr/local/oracle
ORACLE_SID=MYDB
(5)编译示例应用程序
oracletest.pc、oracletest.mk和env_c.def文件位于”/Unit 3/Part5 Oracle/“目录下。用户可以随意修改oracletest.pc中的嵌入式SQL命令。
oracletest.mk将oracletest.pc中的源代码预编译为C代码,将后缀改为”.ccs“,然后运行”cicstcl“来翻译、编译和连接应用程序,类似于DB2示例中的makefile。
运行下列命令生成示例应用程序:
make -f oracletest.mk
(6)添加PD和TD
#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入门系列文章–单元四 TXSeries客户端
四单元 TXSeries客户端
关于本单元
在一单元中,用户已经学习了如何通过”cicslterm“使用3270终端模拟器这类TXSeries客户端。但是大多数情况下,用户可能更倾向在自己不同环境的应用程序中调用TXSeries的交易。所以本单元将介绍CTG(CICS交易网关),这是一个使客户端应用程序能够访问CICS服务器的连接器,内容涵盖如何配置TXSeries与CTG连接的本地模式和远程模式、使用ECI(外部调用接口)进行客户端编程。
参阅:
http://www-01.ibm.com/support/knowledgecenter/SSZHFX_9.1.0/overview/topics/ctg_full.html?lang=en
1. CTG介绍
CTG使得位于不同平台的本地或远程客户端,能够通过一组丰富的APIs访问CICS应用程序,并通过commarea在客户端和服务器之间传输数据。它支持标准的网络协议并能保证高质量的服务。
用户可以在GUI模式下通过命令”ctgcfg“启动CTG配置工具,或者直接编辑CICSCLI环境变量指定的配置文件。稍后将介绍配置步骤。
本单元中,有两个CTG的主要组件用户需要知道——网关守护进程(gateway daemon)和客户端守护进程(client daemon)。
(1)网关守护进程
网关守护进程用于监听远程客户端发来的请求,支持TCP/IP和SSL协议。当客户端和CTG位于不同的机器上时,必须配置和启动网关守护进程来接收请求。用户可以在前台使用”ctgstart“来运行网关守护进程,或者使用”ctgd“作为后台任务运行。
(2)客户端守护进程
客户端守护进程提供一个本地接口, 使用C、C++、.Net和COBOL等编程的客户端应用程序可以通过这个接口连接到CICS。命令”cicscli“用于控制客户端守护进程的状态。
(3)本地模式和远程模式
CTG的运行模式决定于客户端应用程序和CTG的拓扑结构。如果客户端应用程序和CTG位于同一机器,就叫做本地模式;否则,就是远程模式。两种模式的配置是不同的,例如,远程模式中网关守护进程和客户端守护进程都要配置,而本地模式中只有客户端守护进程需要配置 。
下面两张图片展示了本地模式和远程模式的拓扑结构:
CTG有用于连接主机CICS(CICS TS)的版本,也有用于连接TXSeries的版本。本单元后续内容都以TXSeries为例。
2. 配置本地模式
在本地模式中,客户端应用程序通过客户端守护进程直接连接TXSeries。但是首先TXSeries服务器和客户端守护进程需要配置才能彼此通信。
(1)TXSeries端配置
在这种拓扑结构中,CTG(客户端守护进程)将被配置连接到指定的region。CTG可以和TXSeries位于同一机器,也可以位于不同机器。这两种情况的差异会在稍后提及。
a. 在“/etc/services“文件中添加一个服务
region需要在指定端口监听来自守护进程的请求,所以需要在TXSeries端的”/etc/services“文件中添加一个服务,并确保这个端口能够通过防火墙。
例如:
port_43211 43211/tcp
b.向region中添加LD
为了监听指定的端口,应该向region中添加一条LD(监听器定义)记录来实现一个监听器。
语法
以下文章点击率最高
Loading…