CICS程序调用
开放平台CTG调用CICS程序
开放平台(如Linux)可以使用CTG调用主机CICS程序。
这需要主机CICS定义TCPIPSERVICE(使用CEDA交易)并安装;使用CEMT S TCPIPS OPEN
启动。
关于TCPIPSERVICE需要注意的地方:
- 使用
CEMT SET TCPIP OPEN
命令设置TCPIP STAUS为OPEN。 - 必须在CICS initialization中 SIT 设定 TCPIP=YES。 否则在执行CEMT 交易OPEN TCPIP时 会返回错误 'NOT IN SYSTEM'。方法参见[其他]
- 可能需要定义资源 LSRPOOL 如遇到问题可以SDSF中查看SYSLOG和CICS作业的输出,检查是否有可以利用的信息。
备注:
- 在Linux下修改CTG配置ctg.ini增加SERVER后
cicscli /s=SERVERNAME
报CCL8031E错误. 确认配置文件正确,重新启动以使配置文件生效(cicscli /x 然后cicscli /s=SERVERNAME). - 在Linux下使用
CICS_ExternalCall
时报错ABEND CODE AEI0
。 这个错误是PGMIDERR condition not handled。 经研究分析,因为调用时参数不正确:program name may be invalid: 因程序名end with a null character (x'00') instead of a blank - 开放平台
ECI CALL
主机CICS程序,可以使用预定义的镜像交易CPMI
。 需要注意的是这个交易定义的TWA的大小。 若需要自定义mirror transaction,需要参考CPMI的属性,必须将PROGRAM设置为DFHMIRS. - RDO(Resource Define Online) 主要是利用CICS的系统交易CEDA、CEDB、CEDC对各种资源进行联机管理, 包括资源的定义、修改、删除、查看、安装。 资源定义被存放在CSD(CICS System Definition)文件中,并可从该文件中安装到正在运行的CICS上。 RDO的定义方式方便快捷,不需要编译,并能动态更新、生效。
批量程序调用CICS
主机中的非CICS程序(以下称之为批量程序)可以使用CICS的EXCI接口调用CICS程序(以下称联机程序)。 这样的批量程序也需要翻译(CICS预编译),预编译必须使用参数 EXCI。
批量程序可以使用与联机程序类似的CICS LINK 命令,不过其返回用RETCODE获取, EXEC CICS LINK 使用DFHXCPLH中定义的exci_exec_return_code, 具体使用方式返回值的意义可以参见参考资料 16 CICS External Interfaces Guide中The EXCI EXEC CICS interface关于接口的描述。
部分常见错误及解决方法
- resp1=88, resp2=606
这是因为没有定义子系统。根据MVS Using the Subsystem Interface=>Defining Your Subsystem
根据CICS Transaction Server for z/OS 安装指南=>将CICS定义为子系统, 在IEFSSNxx 中将CICS定义子系统(或使用合适的IEFSSNxx,参见IPL启动PARM说明中 IEASYSxx)If you want to use dynamic SSI services, your subsystem must be defined to MVS™ in one of the following ways: IEFSSNxx parmlib member (keyword format) processing during IPL IEFSSI macro invocation SETSSI system command invocation.
- resp1=88, resp2=201
Ensure that a CICS region in the MVS image has logged on to IRC (that is, has started up with the system initialization parameter IRCSTRT=YES or has started IRC dynamically with an OPEN IRC command
- 在
CEMT S IRC OPEN
的时候可能报错 DFHIR3791 根据 CICS Messages and Codes
修改CICS SIT参数,参见11.4其他。 参考Configuring CICS server connectionsIRC facilities are not available because ISC=NO has been specified
- resp1=88, resp2=203 根据 Introduction to CICS interproduct communication 安装Connection和Session只能 CEMT INSTALL 填写GROUP (例如DFH$EXCI,其中定义了EXCG和EXCS)
备注:关于DFH$EXCI中的$需要使用IBM-037方式连接CICS方可输入