扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
前言
TXSeries-CICS是IBM公司的一款高性能的交易处理软件产品,目前已经被广泛应用于银行、移动、电信、保险等关键业务领域,是企业的核心业务系统的构建及运行的平台。
在应用系统的运行过程中,我们往往需要对业务应用程序的运行状况进行监控,获取其运行时状态数据,并通过分析这些数据,了解系统既往及当前的运行状况,并在必要时对应用系统的运行状态做出干涉,从而达到掌握及优化应用系统运行效率、消除系统运行的问题隐患、动态系统管理维护等目的,以使得系统能够始终维持以安全稳定高效的状态运行。
我们知道,在TXSeries-CICS产品中内置了一些实用的交易程序,它们可以读取CICS 域(Region)的运行时配置信息及状态信息,并通过IBM标准的3270终端界面展现给我们。它们虽然并不是CICS应用系统运行时所必需的,但是,这些交易程序对于一个应用系统的运行维护,却往往非常有用处,尤其是对于不能间断运行的生产系统,更是有着积极的意义。
通过调用这些实用交易程序,我们可以获知CICS应用系统从某个时间开始到现在的交易运行状况统计,包括各种CICS资源的开销、交易/程序的平均处理速度、并发请求的峰值、以及当前的处理状况(瞬时)等等。也可以调用这些交易来做一些重要的CICS配置的运行时更新、应用程序调试、系统动态管理等功能。
日常维护中,最常用的CICS内置交易程序主要有两个:CSTD与CEMT。其中CSTD可以用来显示一些重要的有关系统运行的统计数据,比如各种CICS内部资源的开销、交易处理效率等等,以此来帮助用户掌握CICS系统当前的运行状况。而CEMT则用来执行一些重要的CICS系统动态调整管理的功能,比如动态调整应用服务器数目、调整交易队列深度等等。
由于在官方的TXSeries-CICS产品文档中对内置交易的介绍比较有限,很多用法需要用户自己在实际应用中去摸索体会,因此对很多人尤其是初学者来说,能够快速而准确的掌握它们的用法会变得比较困难。
笔者根据工作中长期使用这些内置交易的经验,撰写了两篇文章来比较详细的介绍上述的两个CICS交易(CSTD和CEMT)的用法,期望以此能够对广大的TXSeries-CICS用户的工作有所帮助。本文将介绍如何使用CSTD来分析系统的交易处理性能,有关CEMT的用法将在后续的文章中介绍。笔者相信,通过对这两篇文章的理解,您对CICS应用系统的管理维护技能将会再上一个台阶。
注释:
3270终端是一种典型的"哑终端",它连接并使用IBM主机作为其控制器,具有数据缓冲功能,通常可被用来访问IBM主机系统,可以通过仿真的3270数据流与TXSeries-CICS域进行交互。
|
1. CICS内置交易的访问方法
通常来说,访问CICS内置交易主要有以下两种方法:
方法一
使用TXSeries-CICS产品提供的"cicsterm"命令,或使用CICS Universal Client(CUC)/CICS Transaction Gateway(CTG)产品所提供的"cicsterm"命令,开启一个3270仿真终端窗口,通过这个3270仿真终端窗口,用户就可以发出命令直接调用CICS内置交易了。
# cicsterm -s=<Server Name> |
# cicsterm -r <Region Name> |
方法二
使用专业的3270终端仿真工具(如IBM Personal Communications,Hummingbird Connectivity)访问CICS Telnet Server。
这种用法首先需要在CICS 区域中开放一个"Telnet Server",做法如下:
# cicsteld -r <Region Name> -P <Port Number> & |
其中,<Region Name>指定了要开启CICS Telnet Server的CICS域的名称;<Port Number>指定要开启的CICS Telnet Server的服务端口号码。
之后,就可以使用仿真的3270终端通过相应IP地址以及上面开放的端口即可连接CICS域,并可以直接调用访问CICS交易,如下图为使用Hummingbird来连接一个CICS Telnet Server:
图1. 访问CICS Telnet Server
注释:
目前TXSeries-CICS可以在Windows平台及主流的Unix平台(AIX, HP-UX, Solaris)上运行;而CUC/CTG可在Windows平台、主流的Unix平台(AIX, HP-UX, Solaris, Linux)以及IBM主机平台上运行。TXSeries-CICS的命令本身在其所支持的平台上格式是一致的。为描述方便,本文中所有的操作系统命令均以AIX平台上的操作为例。
|
2. CSTD操作功能键指引
在使用CSTD交易前,先让我们对操作CICSTERM的功能键做一次简单的了解,在日常的操作中主要会使用到如下几个键位:
当使用cicsterm命令或3270仿真终端产品连接到指定的CICS Region后,将会显示"黑屏"。这时在光标提示符后输入"CSTD"(注意要用大写),然后按回车键,即可进入CSTD交易的功能选项界面。注意,根据3270终端定义的键值不同,回车键一般为"右Ctrl"(CUC/CTG中的cicsterm命令通常如此。)或"Enter"。如下图:
图2. 调用CSTD交易
|
3. 使用CSTD交易分析交易处理性能
进入CSTD交易主画面
上图中按回车后进入如下的CSTD主菜单画面:
图3. CSTD交易主画面
上图中各项的简要说明如下:
上述几项中第2、7、8、9、11、12项最为基本常用,在多数情况下对于评价系统的基本性能状况是足够的,因此本文将做详细叙述,同时限于篇幅的关系,其它功能项本文不再做深入讲解。
使用"内存池统计"功能查看CICS内存开销状况
"Pool Storage Statistics"这个功能主要用来查看CICS内部的三种内存区(Region Pool, Task-Private Pool, Task-Shared Pool)的使用情况。界面如下:
图4. CICS内存池使用情况统计画面
说明:
图中第一行左上角"CST2"指的是这个功能的交易的名字。也就是说,你也可以通过在主屏幕的光标提示符后直接输入"CST2"进入这个功能。紧随其后的时间,指示的是这个界面被调出时的时间。
第二行起始所指示的时间指的是最近的统计数据归零的时间,也就是本次统计开始的时间。
在屏幕中上部,我们可以看到两种CICS内存区"Region Pool"以及"Task Shared Pool"的使用情况:
在屏幕的中下部分,我们可以看到系统对三种内存区的分配(Allocations)、释放(Deallocations)的操作情况:
在屏幕的下方,我们可以看到在本次统计时段内发生的:
通过上述的统计数据,可以分析出各个CICS内存区是否处于正常的使用状态,比如是否存在内存紧张的情况。
|
使用"程序统计"查看程序的运行的基本状况
在上面的画面中按"F3"或"Esc+3"即可退回到"CSTD"的主控制画面,然后选"7"进入"Program Statistics"界面:
图5. 程序统计画面
说明:
这个功能主要指示了系统中所有定义的程序(PD)名字,以及它们在本次统计时段内被调用的次数。
从上面的统计数据中,可以准确的分析出在设定的统计时段内,各个程序(PD)被调用的频度,比如哪些程序是使用频率最高的,哪些程序只在很少的时候被调用,以此可为优化系统提供指导。
使用"交易统计"查看交易运行的基本状况
在CSTD主画面中选"8"进入"Transaction Statistics"画面。
图6. 交易统计画面
说明:
在这个画面中,主要显示了系统中所有定义的交易名字,以及每个交易被运行的次数、Abend(异常终止)的次数。
从上面的统计数据中,可以准确的分析出在设定的统计时段内,各个交易(TD)被调用的频度,比如哪些交易是使用频率最高的,哪些交易只在很少的时候被调用,还有哪些交易发生过Abend错误,以此可为优化系统及定位问题交易提供依据。
使用"交易类统计"来分析各个交易类的运行性能
在CSTD主画面中,选"9"进入"Class Max Task Statistics"。
图7. 交易类统计画面
说明:
在CICS系统中,交易被分为10个类别,交易可以被指定属于从交易类1到交易类10中的某一类,当然,你也可以指定你的交易不属于任何一个类别。这里列出了各个交易类所管理的交易的活动情况。
上述统计数据对监控系统的运行状态具有重要意义。我们从这些统计数据中可以看到,当前各个交易类所分配的应用服务器资源配置情况(Max Activ和Queue Len);当前各个交易类正在运行的并发交易的数目(Current),以及在本次统计时段内,每个交易类的并发交易的峰值数目(Peak)、是否应用服务器资源配置已被突破(At Max),由此可以看到各个交易类的繁忙程度,并分析交易类的资源配置是否导致了性能瓶颈,以此找到系统性能调优的方向及依据。
如下图红色椭圆中的数据,我们可以看到在本次统计时段内,交易类10的峰值并发交易数目为:154个,当前正在被处理(注意,包括正在排队而尚未运行的交易。)的交易数目为:5个,交易类的最大应用服务器数目被突破的次数为:22079个,这些数据显示在本次统计时段内,系统曾经处于比较繁忙的状况,可考虑调高本交易类最大应用服务器数目配置以解决问题。
图8. 交易类统计的一个例子
使用"交易/程序处理速度统计"来分析系统的交易处理性能在CSTD主画面中,选"11",即进入"Transaction/Program Rates"画面。
图9. 交易/程序处理速度统计
说明:
这个画面主要显示了本次统计时段内的平均交易或程序处理速度;当前及总共运行的交易或程序的数目等信息。
上述统计数据对分析整个交易系统运行的处理性能状况具有重要意义。首先,我们可以看到当前正在运行的交易的数目(Running),如果此数目比较大,则说明当前系统正在承受比较大的压力;如果此数目长时间不发生变化,则说明系统可能处于某种锁定状态,如交易正在等待数据库的锁。
"Dispatchable"域如果不为0,则说明当前交易处理性能比较低下,应该考虑对系统进行优化调整的动作。如果此域的值持续增长,则说明系统交易的处理性能处于非常缓慢甚至是停滞的状态,系统可能正在发生某种锁定。
"per sec"域的值直接显示了系统整体的交易或程序处理速度,我们可以以此来评估系统处理性能的高低。如果此值比较大,如300以上,则说明系统的处理性能很好,可根据此值推算本应用系统的TPC-C值,以及系统的吞吐率。如果此值很小,如20以下,则说明要么系统承受的交易负载很轻,要么系统存在性能瓶颈导致处理效率低下。
设置统计数据采集时段
在CSTD主画面中,选择"12"进入"Set/Display Statistics"屏幕。这里我们可以将统计数据归零、设置统计数据归零的时间间隔。
图10. 统计设置画面
说明:
通常我们在收集统计数据时,首先会考虑设定统计发生的时段。比如,如果对系统每天的业务高峰的处理情况统计,则可以做如下设置如图,设置统计的起始时间为:每天上午10点,统计数据为2小时复位一次,即可收集每天上午10点至上午12点的统计数据了。
图11. 设置统计时段的例子
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者