自上个世纪80年代以来,IBM的客户信息控制系统(Customer Information Control System,CICS)取得了长促的进步,首先,它提供了一串全屏幕命令处理进程,如CEMT,其次是系统编程接口(SPI)和CICS资源管理器,但在IBM的CICS文档中一直有两个被埋藏的CICS处理进程,很少有人知道这两个进程,但现在却证明它们是非常有用的。 ADYN ADYN是CICS还不支持动态数据集分配时遗留下来的CICS进程,在过去的CICS/VS时代,系统程序员可以使用ADYN为批处理作业释放一个应用程序文件,ADYN运行DFH99程序,对于那些有趣的动态分配,源在SD……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
自上个世纪80年代以来,IBM的客户信息控制系统(Customer Information Control System,CICS)取得了长促的进步,首先,它提供了一串全屏幕命令处理进程,如CEMT,其次是系统编程接口(SPI)和CICS资源管理器,但在IBM的CICS文档中一直有两个被埋藏的CICS处理进程,很少有人知道这两个进程,但现在却证明它们是非常有用的。
ADYN
ADYN是CICS还不支持动态数据集分配时遗留下来的CICS进程,在过去的CICS/VS时代,系统程序员可以使用ADYN为批处理作业释放一个应用程序文件,ADYN运行DFH99程序,对于那些有趣的动态分配,源在SDFHSAMP中是可用的。
如果要启动这个CICS进程,在一个干净的屏幕中输入ADYN,ADYN显示类似于命令控制台的提示符,命令语法大致和TSO ALLOC和FREE命令遵循相同的规则,和CEMT一样,你可以使用问号获得ADYN动词或参数帮助。
ADYN很有趣,因为CLEAR键不会结束进程,要退出,你必须到屏幕右上角按下“erase end-of-field”,然后输入“ENTER”,当你在屏幕上看到“TRANSACTION END(进程结束)”字样就表示你退出了ADYN环境。
ADYN现在几乎已经荒废,因为CICS已能自动分配和释放应用程序数据集,但ADYN一样有用武之地,特别是在分配一个大型辅助跟踪数据集调试一个讨厌的问题时,你可能会创建很大的数据集,然后执行下面的ADYN命令,以便CICS可以使用新文件:
- FREE DDNAME(DFHAUXT) UNALLOC
- ALLOC FILE(DFHAUXT) DSNAME(CICS.BIG.TRACE.DATASET) STATUS(SHR) DISP(KEEP) CONDDISP(KEEP)
注意标准的数据集访问规则,不应该释放一个打开的数据集或分配一个CICS无权接触的文件。
CSFE
CSFE可以执行多个看似无关的功能,进入CSFE回显模式不需要任何运算域,在显示窗口输入的任何字符都将回显到屏幕上,例如,假设你输入“xyz”然后按下回车键,屏幕上将会显示“xyzxyz”,如果想退出,在屏幕右上角输入“END”,这个模式不是特别有用。
CSFE也可以为池和终端生成器开启跟踪功能,CICS写入额外的跟踪条目到内部表,但你必须使用辅助或通用跟踪功能(Generalized Trace Facility,GTF)捕捉它们进行调试,终端生成器跟踪功能可以有选择地为特定或所有自动安装的终端开启。
CSFE的另一个功能是存储冻结,可以由处理进程有选择地开启,它告诉CICS保持任务使用的所有存储,直到进程结束,在某些情况下这个功能特别有用,如CICS进程异常结束,错误地更新文件或使用了一个意外的代码路径,以及调试问题所需的信息存在于释放后重用的块中,应用跟踪时应小心,特别是在生产环境中使用时,你必须确保CICS可以处理更高的存储占用。
CSFE也控制着两个强大的调试陷阱,一个是全局内核出口,即每个域调用和返回上的内核调用,全局内核出口可以为特定错误条件检查内核堆栈。
其它类型的陷阱涉及全局陷阱计划,有时,IBM不会给出解决问题或使用SLIP需要的所有信息,如果一切都失败了,发生错误时,IBM的二级支持可能会产生一个陷阱捕捉诊断数据。
IBM打包陷阱替代模块化的DFHTRAP,并指示客户使用CSFE激活它,激活后,在每个跟踪条目前CICS使用一个参数列表调用DFHTRAP,为DFHTRAP提供足够的信息确定需要的条件是否能得到满足,DFHTRAP给CICS返回一个操作标志字节。
最后,CSFE最有用的功能是存储违反陷阱,开启这个陷阱,告诉CICS在每个跟踪条目前后检查进程存储可压缩区域,检查到一个损坏的可压缩区域时,它写入一条异常跟踪项目,创建一个系统转储文件,并将自己关闭。
这个陷阱有一些限制,首先,它不会检查那些不会破坏可压缩区域的存储违反行为,正如所有存储违反转储一样,有时陷阱会捕捉受害者(一个不相关的任务),而不是肇事者(进程导致被覆盖),最后,在每个跟踪条目期间为活动任务运行存储链将会造成开销。
虽然这个陷阱不能捕捉到覆盖期间的违反行为,但它让你更接近问题的根本原因,每个跟踪条目列出了调用者的返回地址,存储违反跟踪条目的返回地址和之前的跟踪记录代表了发生违反行为时的指令范围,范围的粒度取决于应用程序。
小结
每个CICS版本都会引入新的和更大的系统管理部件,但问题是很少使用,低级的调试工具往往由一个不起眼的进程控制,这就是为什么深入阅读IBM的CICS文档总是值得的原因。
翻译
相关推荐
-
如何为大型机开启CICS存储保护
存储重复占位段是调试时最棘手的问题之一,大型机存储重复占位段可使数据、CICS区域遭到破坏。为了解决这个问题,我们采用存储保护。
-
历史观察:z/OS大型机的事务和数据库管理系统巡礼
IBM一推出现代型大型机,大型机与操作员互动并执行实时普通业务处理这一趋势就变得十分明朗。要达到这个目的,需要引入“事务处理器”。
-
提高应用程序效率的法宝:CICS和服务组件架构
服务组件架构(Service Component Architecture,SCA)是一个应用程序打包和描述方案,旨在提高在应用程序编程中的可移动性和复用。
-
使用CICS TRANSFORM命令实现XML至数据结构转换
IBM似乎在几年前Web service助手发布后便提到了XML助手的相关信息。实际上工具的基本功能便是从XML表或语言结构用创建用于CICS转换所需的元文件。