LoveUnix » 中间件技术 » 关于CICS的交易Abend分析处理方法
让LU留住您的每

一天 让LU博客留住您的每一天
2004-9-27 09:57 sosowang
关于CICS的交易Abend分析处理方法<br />当CICS交易发生Abend时,在CICS 服务器端和客户端都可以得到Abend Code。<br />        在CICS客户端,也就是在发ecicall调用的程序的返回结构中,有Abend Code,应用编程时应该注意将此返回码保持以便出现问题时进行分析。<br />        在CICS服务器端,可以在日志console文件中按照发生Abend的时间找到有关错误信息如ERZ014016ETransaction &#39;transId&#39;, Abend &#39;abendCode&#39;, at &#39;termId&#39;。或者类似含有特征串Abend的信息,在CSMT.out文件中,按照发生问题的时间去找,也可能找到相关的信息。<br />        在/var/cics_regions/&lt;REGIONNAME&gt;/&lt;DumpName&gt;/dir1目录下,看看是否有ASRA????.dmp01等类似文件或者cics*traceback,core*文件。注意根据发生问题的时间去判断哪个文件是发生问题是生成的。<br />        如果没有生成dump文件,请使用这样的命令修改CICS定义(1)cicsdelete –c td –r &lt;regionname&gt; -R &lt;transID&gt;;(2)cicsupdate –c td –r &lt;regionname&gt; -P &lt;transID&gt; Permanent=no;(3)cicsupdate –c td –r &lt;regionname&gt; -B &lt;transID&gt; Permanent=yes TransDump=yes。如果这四条命令的(1)无法运行和(4)无法全部成功,则需要将region冷启动。<br />        再次发生Abend时,会在/var/cics_regions/&lt;REGIONNAME&gt;/&lt;DumpName&gt;/dir1产生需要的交易dump文件了。<br />        使用如cicsdfmt –r &lt;regionmame&gt; ASRA0001 &gt;0001.out这样的命令来格式化dump文件,这个例子格式化ASRA0001.dmp01,输出到0001.out。<br />        检查输出文件0001.out将会看到像下面的信息<br />**** CICS DUMP DETAILS (InfDU) ****<br />        Dump File Name                = ASRA0001.dmp<br />        Dump Reason                = Transaction abend occurred<br />        Date dump created        = 14/04/03<br />        Time dump created        = 12:26:08<br />        然后往下翻,看到如下一段:<br />**** START OF TRANSACTION DUMP ****<br /><br />        Application Server id                                = 108<br />        Transaction Id                                        = CPMI<br />        User Name                                        = CICSUSER<br /><br />Details of function being executed: 0x7f7fd0b8<br />        Function Name                  = fprintf<br />        Service Level                  = <br />        Offset of current instruction  = 0<br /><br />                Called by function         = [/var/cics_regions/ABIS05/bin/?<br />                         from offset         = 0<br /><br />                Called by function         = [/var/cics_regions/ABIS05/bin/?<br />                         from offset         = 0<br /><br />                Called by function         = PinCA_StartC<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_CallApplication<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_RunProgram<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_IRun<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_Run<br />                         from offset         = 0<br /><br />                Called by function         = PinCA_Route<br />                         from offset         = 0<br /><br />                Called by function         = cics_api_exec_c<br />                         from offset         = 0<br /><br />                Called by function         = [/var/cics_regions/ABIS05/bin/?<br />                         from offset         = 0<br /><br />                Called by function         = PinCA_StartC<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_CallApplication<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_RunProgram<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_IRun<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_Run<br />                         from offset         = 0<br /><br />                Called by function         = PinCA_Route<br />                         from offset         = 0<br /><br />                Called by function         = cics_api_exec_c<br />                         from offset         = 0<br /><br />                Called by function         = [/var/cics_regions/ABIS05/bin/?<br />                         from offset         = 0<br /><br />                Called by function         = PinCA_StartC<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_CallApplication<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_RunProgram<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_IRun<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_Run<br />                         from offset         = 0<br /><br />                Called by function         = PinCA_Route<br />                         from offset         = 0<br /><br />                Called by function         = cics_api_exec_c<br />                         from offset         = 0<br /><br />                Called by function         = [/var/cics_regions/ABIS05/bin/?<br />                         from offset         = 0<br /><br />                Called by function         = PinCA_StartC<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_CallApplication<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_RunProgram<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_IRun<br />                         from offset         = 0<br /><br />                Called by function         = TasPR_Run<br />                         from offset         = 0<br /><br />                Called by function         = PinCA_Route<br />                         from offset         = 0<br /><br />                Called by function         = ComFS_APPCServ<br />                         from offset         = 0<br /><br />                Called by function         = TasTA_Exec<br />                         from offset         = 0<br /><br />                Called by function         = TasTA_Run<br />                         from offset         = 0<br /><br />                Called by function         = main<br />                         from offset         = 0<br /><br />                Called by function         = _start<br />                         from offset         = 0<br /><br /><br />Abend codes: 0xc9b1afc0<br />        Latest Abend code              = 0x41535241<br />        First Abend code               = 0x41535241<br /><br />Abend codes (ASCII formatted during dump creation): 0x7f7fd0fc<br />        Latest Abend code              = ASRA<br />        First Abend code               = ASRA<br /><br />**** END OF ERROR SUPPORT DUMP (SupER) ****<br />这表明某个应用程序在运行到fprintf调用时出错了,往下查找特征串“Program full path name”,一般可以发现是哪一个程序的错误了。<br /><br />        分析cics*tracebackup文件,也可以看到类似的程序调用堆栈信息,也就可以初步定位是发生在哪一个调用上的程序错误了。<br />        然后,就是去修正应用程序上的错误了。<br />

2004-10-12 09:07 leemq
呵呵,农行的啊

2004-10-13 15:46 sosowang
你是?!<br />有时间联系我,聊聊。<br />赏脸否?

2005-3-25 15:04 wcp2004
你是哪里的,农行

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.