cics报错-9

CICS_ExternalCall 调用返回 ECI_SYSTEM_ERROR

CICS客户端应用程序调用CICS_ExternalCall返回错误代码为-9,表示什么意思?如何排除这个错误?

解答:

CICS 客户端应用程序用ECI 接口调用CICS 服务器程序,如果返回值是 -9 ,表示发生了系统内部错误,CICS_ExternalCall 函数返回值-9 在cics_eci.h 头文件中表示ERROR_SYSTEM_ERROR。具体的错误原因记录在ECI_Parms.eci_sys_return_code 字段中,返回值通常在头文件terec_priv.h 中定义,但随平台与版本的不同也会有不同。
产生这种内部错误的原因较复杂,常见的有以下几种:
1信号量(semaphore) 资源不足,常见于HP-UX、SUN Solaris 、SCO Unix等平台上,可以参考产品安装文档和操作系统管理文档,适当加大操作系统关于信号量的核心参数。
2 网络故障使客户端与服务器无法正常通讯,这里的网络故障并不仅限于通讯带宽不足或线路不稳定的网络,不正确的配置亦会造成这种故障。如客户端通过RPC 与服务器通讯时,没有正确地指定RPC 使用的IP 地址或网卡,可以通过RPC_UNSUPPORTED_NETIFS 或RPC_UNSUPPORTED_NETADDRS 环境变量设定。也可能是由于客户端与服务器使用UDP通讯而非TCP,可以通过设置环境变量RPC_SUPPORTED_PROTSEQS 为ncacn_ip_tcp 来指定用TCP 协议。
3 CICS 服务器发生异常故障,如正在非正常中止、被调用的事务异常中止、由于服务器端的配置错误发生通讯故障等。

eci_sys_return_code 是一个保留域,为CICS Client 软件记录与平台相关的内部错误而设。下面是常用的返回值含义,因为版本和平台的差异,并不保证完全正确。

#DEFINE ERR_ECI_INIT -1 // INTERNAL ERROR - UNLIKELY
#DEFINE ERR_EPI_INIT -2 // EPI INIT IN PROCESS
#DEFINE ERR_EPI_CANNOT_INIT -3 // PROBABLY A DCE
// AUTHENTICATION PROBLEM
#DEFINE ECI_ERR_CICS_DIED -4 // HOST REGION IS DYING
#DEFINE ERR_BAD_EPI_EVENT -5 // GENUINELY UNEXPECTED
// PROBLEM - FORWARD TESTCASE
#DEFINE CANNOT_START_THREAD -6 // UNIX RESOURCE SHORTAGE
#DEFINE CANNOT_REGISTER_ATEXIT -8 // UNIX RESOURCE SHORTAGE
#DEFINE MALLOC_FAILURE 1000 // UNIX RESOURCE SHORTAGE
#DEFINE BAD_STATE 1001 // ANOTHER INTERNAL HORROR
#DEFINE UNEXPECTED_EPI_END_TERM 1003 // LOST THE TERMINAL
// REGION CRASH OR COMMS ERROR?
#DEFINE UNEXPECTED_EPI_END_TRAN 1004 // CPMI ENDED UNEXPECTEDLY
// (FORCE PURGED?)
#DEFINE END_TRAN_ABEND 1005 // LOOK IN THE ABEND FIELD

UNIX 平台上的ECI 程序接口的底层功能,如建立终端等操作由EPI 调用接口完成,因此即使应用程序没有使用EPI 调用,还是有可能返回EPI 错误。

相关文档
最新文档