CICS Performance Toolkit

137
© Xephon plc July 2002 CICS Performance Toolkit x

description

CICS Performance Toolkit is a compilation of performance-related articles published recently inCICS Update, Xephon’s monthly technical journal for CICS specialists. As well as coveringperformance monitoring and tuning, CICS Update provides practical information, code, and adviceon back-up and recovery, security, integrity, the user interface, ways of making the life easier forCICS end users

Transcript of CICS Performance Toolkit

Page 1: CICS Performance Toolkit

1© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

© Xephon plc July 2002

CICSPerformanceToolkit

x

Page 2: CICS Performance Toolkit

2 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Preface

CICS Performance Toolkit is a compilation of performance-related articles published recently inCICS Update, Xephon’s monthly technical journal for CICS specialists. As well as coveringperformance monitoring and tuning, CICS Update provides practical information, code, and adviceon back-up and recovery, security, integrity, the user interface, ways of making the life easier forCICS end users and application and systems programmers, systems internals, and a variety of othertopics of interest to CICS specialists and of value to their installations.

You can find out more about CICS Update here:

http://www.xephon.com/cicsf

Subscribers to CICS Update are able to download Acrobat PDF versions of all past issues fromJanuary 2000 onwards – including the issues in which these articles were first published.

It’s only fair, therefore, that, if you now decide to subscribe to CICS Update, you shouldn’t haveto pay for these articles again. We have set up an e-mail autoresponder that will give you a discountequivalent to the price you paid for this Report (it may not be precisely the same because of currencyvariations, but it’s as close as we can get it). To get your discount voucher, please send an e-mailto [email protected] with cics-cpt as the subject (or just click here).

We hope you find the CICS Performance Toolkit valuable in its own right, but we’ll be even happierif we can welcome you as a subscriber to CICS Update!

Trevor EddollsEditor

DisclaimerReaders are cautioned that, although the information in this report is presented in good faith, neitherXephon nor the organizations or individuals that supplied information in this Report give any warrantyor make any representations as to the accuracy of the material it contains. Neither Xephon nor thecontributing organizations or individuals accept any liability of any kind howsoever arising out of theuse of such material. Readers should satisfy themselves as to the correctness and relevance to theircircumstances of all advice, information, code, JCL, and other contents of this report before makingany use of it.

Published byXephon27-35 London RoadNewburyBerkshire RG14 1JLEnglandTelephone: 01635 38342From USA: 01144 1635 38342

© Xephon plc 2002. All rights reserved. None of the text in this publication may be reproduced, stored in a retrievalsystem, or transmitted in any form or by any means, without the prior permission of the copyright owner.Subscribers are free to copy any code reproduced in this publication for use in their own installations, but maynot sell such code or incorporate it in any commercial product. No part of this publication may be used for anyform of advertising, sales promotion, or publicity without the written permission of the publisher.

Page 3: CICS Performance Toolkit

3© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Contents

Continued ...

2 Preface3 Contents5 Health check-up for the CICS subsystem

A periodic ‘health check’ of older CICS applications helps to identify performanceproblems, allowing pro-active maintenance to take place before serious problemsoccur.

CICS shutdown statistics, gathered using the IBM-supplied DFHSTUP utility, can beused to examine file request information, decide which files are good candidates forLSRPOOLS, check transaction manager statistics (eg MAXTASKS), check storagemanager statistics (DSA and EDSA usage), look at temporary storage usage, findbuffer full conditions and waits on archive, and identify redundant programs/transactions.

9 A simple program to monitor CICS task storageThis program monitors a task’s storage usage in the Dynamic Storage Area (DSA) andExtended Dynamic Storage Area (EDSA). This helps systems programmers toinvestigate and determine which task is using up storage in the DSA or EDSA.

The program shows all the displayable tasks plus their user IDs, and the storage used inthe DSA and EDSA. It makes use of CICS SPI commands ‘inquire task list’ and‘inquire task storage’.

13 Tuning AOR/FOR traffic in CICS/TS 1.2CICS Version 5 (in CICS/Transaction Server Version 1) provides a significantenhancement over CICS 4.1 in the area of ISC and MRO connection and sessionterminal names. This article supplies a number of tuning tips.

20 CICS ISC/MRO session monitoringUpgrading from CICS/ESA Version 4.1 to CICS/TS Version 1.3 can lead to problemswith sessions remaining acquired when previously they were released.

This article contains a program, which refreshes itself every three minutes, and allowsusers to monitor the status of the MRO/ISC connections for the CICS region,especially the connection which is losing the sessions.

A second program monitors the connection and releases/re-acquires the connections.The transaction is a long-running one with the program waiting for five minutes betweenchecking the connection status and REL/ACQ actions. The program also checks forCICS shutdown status and terminates itself upon CICS termination.

31 Monitoring system logger activity onlineAn important task when running CICS/TS is to monitor the logger set up for CICS.IBM provides the batch program IXGRPT1, and CICS systems programmer should be

Page 4: CICS Performance Toolkit

4 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

very familiar with this program in order to understand whether CICS’s system logs,DFHLOG and DFHSHUNT, are well defined and tuned.

Many people find it difficult to interpret IXGRPT1 output and to understand the figuresand the critical situations. This article contains program IXGRPTC (C stands for CICS)and program IXGSMF8 to overcome this problem.

61 Monitoring CICS activityThis article describes how to keep an on-line and historical view of all the system andapplication activities in the CICS session, which are written to an application and/orCICS transient data. This process is done almost automatically.

These activities are archived onto a monthly tape while CICS is running, ensuring thateach month has its own tape, and to ensure data continuity when CICS is terminated orcancelled.

80 Buried treasure in the CICS TRACE TABLECICS trace is the primary tool for application and system debugging. It is a series ofdata entries, written in chronological order, that document the state of various systemresources and activities.

There are a number of very useful CICS trace entries that can be used to provide agreat deal of helpful information, provided you know what to look for within the(potentially) vast amount of trace data that CICS can generate. This article highlights anumber of such trace entries, explaining when they were introduced, what they can offeryou, and the trace options required to generate them.

91 Collecting DB2ENTRY statistics and tuning the CICSattachment facilityThis article is for sites where the production CICS Transaction Server is experiencingcontention and the TCBLIMIT parameter is reaching its maximum value. If the CICSTS experiences poor response times in spite of there being only a few transactionsactive, the only way to overcome the problem seems to be to de-activate and then re-activate the CICS Transaction Server.

This article offers a solution by modifying the values of TCBLIMIT, THREADLIMIT,and MAXOPENTCBS, and reassigning the dedicated threads in the order in whichthey were to be used again (REUSED) for several transactions. In this way, the CICSTransaction Server region assigns fewer TCBs, consumes less CPU, and improves theresponse time.

The transaction IDBE helped greatly in determining the appropriate values for the CICSparameters.

111 Understanding CICS Monitoring and Statistics dataCICSPlex SM provides information about CICS runtime resources via twocomponents, namely OPERATIONS and MONITORING. OPERATIONS resourcesare obtained from the Managed Address Space (MAS) at the point in time when therequest is made. MONITORING resources are obtained from the MON data cache atthe point in time the request is made.

The article contains details of tables showing attributes that have processing propertiesother than NONE, REPLace.

Page 5: CICS Performance Toolkit

5© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Health check-up for the CICS subsystem

There are numerous CICS applications successfully executing around theglobe. A periodic ‘health check’ of these online applications can helpidentify performance problems and you can perform pro-active maintenancebefore these start posing serious problems for the application or use morethan the required amount of system resources to get the work done.

A few things listed here can help you do a quick check-up of your CICSsystem. This can also help you identify both problems that already exist andpotential problems.

CICS shutdown statistics form the basis for our action. There is a wealthof information available in the shutdown statistics that can be harvested toanalyse and ensure optimal performance of the CICS subsystem.

Shutdown statistics can be gathered using the IBM-supplied CICS utility,DFHSTUP, which uses the CICS SMF record (SMF 110) to analyse theinformation and report it. For a complete description of this utility referto the CICS Operations and Utility Guide.

This article does not discuss database-related issues (databases other thanVSAM files) as a part of the CICS system health check because these forma separate topic by themselves.

FILE REQUEST INFORMATION

As we all know, no I/O is the best I/O. In this section of the CICS shutdownstatistics, a key figure to watch out for is the number of EXCP requests onthe file. All files with high EXCP counts are likely to be performancebottlenecks. The top 20-30 percent of the files with the highest EXCPcount should be carefully examined for the type of access requests (get/browse/update/add/delete). Some files are used just for add requests. Inmany cases, it so happens that these are defined as VSAM KSDS clusters,which have an additional overhead of maintaining an index. Not only that,if the records being added are not written in ascending key sequence thenexcessive I/Os result because of CI and CA splits. For better performancethese should be allocated as VSAM ESDS clusters using NSR access and‘number of strings=1’.

Page 6: CICS Performance Toolkit

6 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Files showing a high number of CI and CA splits should be analysed toarrive at an initial loading strategy to minimize the splits and/or alter theCI size and FREESPACE parameters. Although shutdown statistics do notprovide the CI/CA split information, LISTCAT can be used to gather thisinformation. Information should also be gathered for unused alternateindexes. If the path shows a high EXCP count but no get/browse requests,it is likely to be redundant. At one of the installations where I worked, Ifound an alternate index was being built but was not used because of achange in functionality. Such alternate indexes should be reviewed withdevelopers to find out whether they are needed by the application or not.If not, they should be removed.

Small and heavily read files are good candidates for data tables.

Waits on strings/buffers on critical files can also lead to serious performanceproblems and appropriate buffers/strings should be increased to minimizethe waits.

LSRPOOLS AND DATA TABLES

Files with a high read to write ratio with fairly random access are goodcandidates for LSRPOOLS. Files with a low read to write ratio should notbe allocated to LSRPOOLS. LSR buffers for these files would have to beexternalized and therefore these would not show any major improvementby using LSRPOOL buffers. Using the information from the file requeststatistics above, those files to be placed in the LSRPOOL can be identifiedand the LSRPOOL can be allocated appropriately for the files. TheLSRPOOL look-aside ratio is the key thing to watch out for. It is calculatedusing following formula:

Look-aside ratio = Look asides /(Look-asides + Buffer reads)

The closer to 1.00 the better it is. The look-aside ratio forms the basis fortuning the LSRPOOLS. The look-aside ratio goes up if the buffer size isincreased. Of course as real storage is a constrained resource, there is anupper limit to the number of buffers that can be assigned to the LSRPOOL.Because the look-aside ratio is no exception to the law of diminishingreturns, adding more pools beyond a certain point is not fruitful. Separatebuffers for data and indexes are recommended for large files with semi-random access so that the data control intervals do not monopolize the LSR

Page 7: CICS Performance Toolkit

7© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

buffers by discarding the index control intervals. Separate buffers wouldreduce I/O for a frequently used index CI. Alternatively, compound bufferscan be used by standardizing the CI sizes of data and index components ofthe VSAM cluster. Small and heavily read files can be defined as data tablesbecause the path length to read a record from a data table is smaller thanthat from an LSRPOOL.

TRANSACTION MANAGER

Take a look at the transaction manager statistics. Things are not in goodshape if we see that the MAXTASKS limit is being reached frequently.Transactions would queue up when the MAXTASK limit is reached. Thegravity of the problem depends on how many times the MAXTASK limitis hit. Ideally this should be 0, but for some applications an occasionaloccurrence of this may not be a major concern. However, if this occurs ina CICS region during non-peak activity periods then it certainly needsattention. The remedy would be to increase MAXTASK appropriately inthe SIT.

STORAGE MANAGER

Storage manager statistics show us the current limit and maximum usageof the DSA and the EDSA. The appropriate DSA limit should be increasedif the peak utilization is approaching the maximum limit. Not doing socould result in CICS releasing storage cushions, which means spendingCPU cycles on non-application work, impacting performance. Timecushions released show up in the storage manager statistics and shouldideally be 0, however having this at 0 is not sufficient. A healthy systemwould never run with a nearly 100 percent-utilized DSA or the EDSA.What if you implement new functionality, which adds a few more programsand a couple of additional files (which means more access control blocks)resulting in increased utilization of the EDSA? The CICS region may nowgo short on storage. It would therefore be nice to ensure that the abovesituation does not arise by having sufficient buffers for the DSA/EDSA,and monitoring it after every implementation.

TEMPORARY STORAGE AND TRANSIENT DATA QUEUES

Temporary storage is mainly used by applications as a scratch pad area, but

Page 8: CICS Performance Toolkit

8 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

at many installations one sees all the TSQs allocated to auxiliary storage.If the statistics indicate a zero or very low utilization of main storage thenthere is a potential for performance improvement by moving the non-recoverable TSQs to MAIN storage, thereby reducing I/Os to an auxiliarydataset. If the statistics show too many queue extensions, it means thatCICS is spending its resources doing ‘non-application’ work like GETMAINand FREEMAIN. Should this happen at your installation, SIT parameterTSMGSET should be appropriately increased to reduce queue extensions.Watch out for buffer or string waits on the queues, if any. These waits canbe eliminated/minimized by increasing the number of buffers/stringsallocated.

JOURNALS

Important statistics to look out for are the buffer full condition and waitson archive. If the buffer full condition occurs, the buffer size should beincreased in the journal control table. If waits on archive are experienced,consider increasing the log size or reducing the archival frequency; verifythat, if the logs are archived to tape, tape mounts are performed quickly.Also have a look at the service class or dispatching priority (depending onwhether the system is running in WLM goal mode or ICS/IPS configuration)of the journal job. If this is very low, the job may not get the requiredresources during busy hours. Care should also be taken not to make it toohigh or CICS response may suffer when the journal job executes.

REDUNDANT PROGRAMS/TRANSACTIONS/TERMINALS

Some programs/transactions become redundant over a period of time.Examining the ‘attach count’ can identify these (which would be 0 forunused transactions) in the TRANSACTION STATISTICS, and check the‘times used’ count in the PROGRAM details. If too many of these arearound, then they should be removed from the CICS system tables and CSDbecause these could result in increased ‘non-application’ resource usagein terms of real storage to hold these entries and CPU cycles to search tableentries.

Pranav SampatCognizant Technology Solutions (USA) © Xephon 2002

Page 9: CICS Performance Toolkit

9© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

A simple program to monitor CICS task storage

The purpose of this simple program is to monitor a task’s storage usagein the Dynamic Storage Area (DSA) and Extended Dynamic Storage Area(EDSA). In development systems, where CICS regions are prone toproblems such as task looping or short on storage conditions, this programcan come in handy if you do not have any monitoring tools running.

The program will show all the displayable tasks that are in the system withtheir user IDs, and the storage used in the DSA and EDSA, by testingwhether the address of the storage is 24-bit or 31-bit. This can help systemsprogrammers to investigate and determine which task is chewing upstorage in the DSA or EDSA.

This program makes use of CICS System Programming Interface (SPI)commands ‘inquire task list’ and ‘inquire task storage’, and needs to becompiled with the translation option SP. Below is a sample of the output:

TRANS TASKNO USERID DSA (K) EDSA (K)CONL ØØØØØØ23 CICDOCM ØØØØØØØØ ØØØØØØ2ØCOIØ ØØØØØØ25 CICDOCM ØØØØØØØØ ØØØØØØ19COIE ØØØØØØ27 CICDOCM ØØØØØØØØ ØØØØØØ3ØOMEG ØØØØØØ32 CICDOCM ØØØØØØØ2 ØØØØØØØØCSKL ØØØØØØ33 CICDOCM ØØØØØØØØ ØØØØØØ13OMEG ØØØØØØ34 CICDOCM ØØØØØØØ2 ØØØØØØØØSØØ2 ØØØØØ2Ø1 OPERHLZ ØØØØØØ5Ø ØØØØØØ27SØØ3 ØØØØØ2Ø4 OPERHLZ ØØØØØØ45 ØØØØØØ27CSTG ØØØØØ777 SUPPHKX ØØØØØØØ1 ØØØØØØØ7

DISPSTOR

*ASM XOPTS(SP) TITLE 'Display tasks storage used in DSA and EDSA'* AUTHOR : Kah Soon HO PRINT NOGEN EJECTDFHEISTG DSECT*R4 EQU 4R5 EQU 5R6 EQU 6R7 EQU 7

Page 10: CICS Performance Toolkit

10 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

R8 EQU 8R9 EQU 9 SPACE 1 EJECTDISPSTOR CSECT ,DISPSTOR AMODE 31DISPSTOR RMODE ANY EXEC CICS INQUIRE TASK LIST + LISTSIZE(N) + SET(R6) + RESP(RESP) CLC RESP,DFHRESP(NORMAL) Was there a problem? BNE FAILQUIT Yes. Take the error exit. SPACE 1 L R5,N No. Get the number of tasks. LTR R5,R5 Are there any tasks? BZ RETURN No, so start the next phase. XR R4,R4 Clear R4 M R4,SIZE Calculate size of getmain to ST R5,STGSIZE save task list EXEC CICS GETMAIN + SET(R7) + FLENGTH(STGSIZE) + INITIMG('_') CLC RESP,DFHRESP(NORMAL) Was there a problem? BNE FAILQUIT Yes. Take the error exit. ST R7,TLIST Store new address for task list L R5,N No. Get the number of tasks.STLIST DS ØH MVC Ø(4,R7),Ø(R6) Copy task list to new address A R6,=F'4' Move on to the next task A R7,=F'4' Move on to the next task BCT R5,STLIST Loop back if there is more to do SPACE 1 MVC DISPLAY,=CL79' ' MVC DISPLAY(9),=CL9'TRANS ' MVC DISPLAY+8(8),=CL9'TASKNO ' MVC DISPLAY+17(8),=CL9'USERID ' MVC DISPLAY+26(8),=CL9'DSA (K) ' MVC DISPLAY+35(8),=CL9'EDSA (K)' EXEC CICS SEND TEXT FROM(DISPLAY) LENGTH(79) FREEKB ERASE + ACCUM PAGING RESP(RESP) CLC RESP,DFHRESP(NORMAL) If everything is OK.. BNE FAILQUIT Yes. Take the error exit. L R6,TLIST Get address of task list L R5,N No. Get the number of tasks.TASKLOOP DS ØH MVC TASKNO,Ø(R6) Store the task number.* get the task details.

Page 11: CICS Performance Toolkit

11© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

EXEC CICS INQUIRE + TASK(TASKNO) + FACILITY(FAC) + TRANSACTION(TRAN) + USERID(USER) + RESP(RESP) CLC RESP,DFHRESP(NORMAL) Is the task still there? BNE TASKEND No. next task EXEC CICS INQUIRE STORAGE + NUMELEMENTS(ENUM) + ELEMENTLIST(R7) + LENGTHLIST(R8) + TASK(TASKNO) + RESP(RESP) CLC RESP,DFHRESP(NORMAL) If everything is OK.. BNE FAILQUIT Yes. Take the error exit. SPACE 1 ST R7,ELIST store address of element & ... ST R8,LLIST length list L R9,ENUM set element number as counter L R4,HEXØ initialize r4, DSA & EDSA ST R4,DSA ST R4,EDSAADDLOOP EQU * CLC ADDR24,Ø(R7) is it a 24bit address ? BL EDSAADD no then branch . L R4,Ø(R8) yes then add the storage ... A R4,DSA to DSA ST R4,DSA B ADDENDEDSAADD EQU * L R4,Ø(R8) yes then add the storage ... A R4,EDSA to EDSA ST R4,EDSAADDEND EQU * A R7,=F'4' move to next byte A R8,=F'4' BCT R9,ADDLOOP counter loop* L R8,HEXØ L R9,DSA D R8,HEX1Ø24 convert to number of K CVD R9,DSAK UNPK DSA#,DSAK convert to text OI DSA#+7,C'Ø' force X'FØ'* L R8,HEXØ L R9,EDSA D R8,HEX1Ø24 convert to number of K

Page 12: CICS Performance Toolkit

12 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

CVD R9,EDSAK UNPK EDSA#,EDSAK convert to text OI EDSA#+7,C'Ø' force X'FØ'* UNPK TASKNO#,TASKNO format the task.. OI TASKNO#+7,X'FØ' MVC DISPLAY,=CL79' ' MVC DISPLAY(4),TRAN MVC DISPLAY+8(L'TASKNO#),TASKNO# MVC DISPLAY+17(L'USER),USER MVC DISPLAY+26(L'DSA#),DSA# MVC DISPLAY+35(L'EDSA#),EDSA# EXEC CICS SEND TEXT FROM(DISPLAY) LENGTH(79) FREEKB ERASE + ACCUM PAGING RESP(RESP) CLC RESP,DFHRESP(NORMAL) If everything is OK.. BNE FAILQUIT Yes. Take the error exit. SPACE 1TASKEND DS ØH A R6,=F'4' Move on to the next task BCT R5,TASKLOOP Loop back if there is more to do* End of task list L R7,TLIST Get address of task list EXEC CICS FREEMAIN DATAPOINTER(R7) B RETURN SPACE 1************************************************************************ Abnormal return***********************************************************************FAILQUIT DS ØH MVC DISPLAY,=CL79' ' MVC DISPLAY(16),=CL16'TRANSACTION FAIL' EXEC CICS SEND TEXT FROM(DISPLAY) LENGTH(79) FREEKB ERASE + ACCUM PAGING RESP(RESP)RETURN EXEC CICS SEND PAGE EXEC CICS RETURN SPACE 3************************************************************************ Data area*********************************************************************** LTORGRESP DS FN DS F Number of taskTASKNO DS FTASKNO# DS DENUM DS CL8 Storage elementELIST DS F'Ø' Element listLLIST DS F'Ø' Storage length listTLIST DS F'Ø' Task listDSA DS F'Ø'EDSA DS F'Ø'HEX1Ø24 DC XL4'ØØØØØ4ØØ'

Page 13: CICS Performance Toolkit

13© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

HEXØ DC XL4'ØØØØØØØØ'DSAK DS DEDSAK DS DDSA# DS CL8' 'EDSA# DS CL8' 'ADDR24 DC XL4'ØØFFFFFF' Highest 24-bit addressSTGSIZE DS F Size of getmainSIZE DC F'4'TRAN DS CL4' 'FAC DS CL4' 'USER DS CL8' 'DISPLAY DC CL79' ' END DISPSTOR

Kah Soon HoSenior Systems Support AnalystPublic Bank (Malaysia) © Xephon 2002

Tuning AOR/FOR traffic in CICS/TS 1.2

INTRODUCTION

CICS Version 5 (in CICS/Transaction Server Version 1) provides asignificant enhancement over CICS 4.1 in the area of ISC and MROconnection and session terminal names. Version 5 allows the systemsprogrammer to quickly analyse and tune the ‘width’ and the ‘breadth’ ofthe connections for the optimal traffic size. This eliminates some transactionqueueing and also dramatically reduces the number of GETMAINs andFREEMAINs during function shipping.

BACKGROUND

Prior to CICS 4.1.0, entering a one- or two-character prefix on the sessiondefinitions for MRO connections was required. This prefix would be usedas the first one or two bytes of the TCTTE name. In other words, it was theprefix of the name of the ‘terminal’ used for that session between the twoCICS regions in question. CICS would come up with the rest of the name

Page 14: CICS Performance Toolkit

14 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

by using the following simple algorithm: start with the prefix and countup by 1 (in decimal). If the prefix was ‘A’ then the terminals could run from‘A1’ to a maximum of ‘A999’. If the prefix was ‘AA’ then they could runfrom ‘AA1’ to ‘AA99’ (the names are all four bytes; blanks are padded ifnecessary). For example, assume you had an FOR connected to an AORwith the following session definitions: SENDCount=4 ,RECEIVECount=4, SENDPfx=F, and RECEIVEPfx=A. When lookingat the TCTs in your FOR using your monitor or in the summary report fromthe SMF statistics (what everyone still calls ‘shutdown stats’), you wouldfind eight terminals involved in the communication from this FOR to thatAOR – A1 through A4 (Receives) and F1 through F4 (Sends).

There was only one problem with this refinement. The prefix picked couldcause CICS to create an MRO ‘terminal’ name that was a duplicate of a real3270 device. Installation, of course, would not occur and a problem wouldbe created. Therefore you needed yet another naming convention to keeptrack of, as well as possibly having to add code to your terminal autoinstallexit in order to avoid such collisions.

With CICS 4.1.0, picking a send and receive prefix was no longer required.You could let the system default to a SENDPfx of ‘>’ and a RECEIVEPfxof ‘<’. The terminal naming algorithm also changed. It became bizarre.

The terminal names currently employed by CICS connections when youallow the default prefixes ‘>’ for SEND and ‘<’ for RECEIVE start with‘>AAA’, then ‘>AAB’, then ‘>AAC’, etc, until the number of SENDsessions are used up. If you had a SENDCount of 4, then the first SENDsession would be ‘>AAA’ and the last SEND session would be ‘>AAD’.The first RECEIVE session would be ‘<AAE’ followed by ‘<AAF’ untilyou finished the RECEIVEs. If you finished them and ended with ‘<AAK’,then the next connection installed would have as its first SEND session theterminal ‘>AAL’ and so on. The possibility of a duplicate terminal nameis greatly reduced. Determining which terminals go where in a busy FORthat is connected to many AORs is difficult because the terminals are alllisted alphabetically on the summary report, corresponding to the order inwhich the connections were installed. You must therefore determine theorder in which the connections were installed in your region in order toidentify to which AOR the terminals belong on the summary report.

Page 15: CICS Performance Toolkit

15© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

DISCUSSION

IBM has enhanced the CICS SMF statistics with Transaction Server. Figure1 shows the left-hand side of the terminal section of the summary report.

Figure 1: Terminal section (left-hand side) report

CICS 5.2.Ø Statistics Utility ProgramSummary Report___________________________________________________Terminal_________ Term Terminal Acc Conn � ID LUname Type Meth ID �___________________________________________________

<AAX ISC CONV MRO XAØ7 <AAY ISC CONV MRO XAØ7 <AAZ ISC CONV MRO XAØ7 <AAØ ISC CONV MRO XAØ7

The new Connection ID column is a much-needed improvement. If yourconnection names have anything to do with your region names, and theyprobably do, you can easily determine which terminals go with whichregions from this column.

This section of the report shows that the traffic flows on only a fewterminals – because the Send sessions are not important to the FOR.Virtually all the traffic occurs on the Receive sessions. Similarly, all thetraffic in the AOR occurs on the Send links. The reason is the SENDsessions are used for traffic originating in the local region. The RECEIVEsessions are used for traffic originating in the other region. (FORs don’tinitiate work for AORs. It’s the other way around.)

The report also shows that the terminal traffic is not load-balanced. Thelinks are bi-directional, which means a transaction will use the samesession for multiple requests. The terminals are searched sequentially andthe first one free in the list becomes the one used for this transaction. If theregion is not very busy, you may find only the first terminal being used foreverything.

Page 16: CICS Performance Toolkit

16 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

It is important to have enough sessions defined. If your regions are verybusy and you do not have enough sessions defined, you will see significanttraffic on all the terminals for that connection and you will experiencequeueing for allocating sessions. These queueing delays can be avoidedsimply by increasing the RECEIVECount and SENDCount on the SESSIONdefinition. You must, of course, select a count that is not so large as to letone AOR flood the FOR with too many requests during a peak period. (Acount of 20 is adequate for busy regions.)

You should also balance the number of SEND AOR sessions with thenumber of RECEIVE FOR sessions. Having them out of sync is confusing.We standardized on 20 and 5 – an AOR has 20 SENDs and 5 RECEIVEsand an FOR has 20 RECEIVEs and 5 SENDs.

Figure 2 describes the effect of an insufficient number of sessions. It is alsotaken from the summary report but appears in the Connection section. Thetwo lines indicated will be non-zero, indicating transactions are waiting fora session so they can issue a request to the other region. This is not good.

Examine Figure 3, which is taken from the right-hand side of the terminalsection of the summary report.

The input messages and output messages show the volume of functionships this region (the FOR) is doing with the region listed in the CONNIDcolumn off to the left in Figure 1 (the AOR). The number of messages oneach successive terminal for the connection should fall to 0 (before all

Figure 2: Connection section report

�Connection name CONN1�Peak outstanding allocates 1ØØTotal number of allocates 1ØØØØAverage number of queued allocates <<< THESE 2 LINES WILLFailed link allocates 25ØFailed allocates due to sessions in use <<< BE NON-ZERO� .

Page 17: CICS Performance Toolkit

17© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

terminals are occupied) as in Figure 3, indicating that no transactions werequeued up waiting for a session.

The ‘Average TIOA Storage’ gives you the average size that was requiredfor each request. This is the key piece of data required for tuning the traffic.In the example in Figure 3, the average storage size required to ship therequest to the other region was 5,912 bytes. If the session was defined toprovide 8KB of storage to start with, this 8KB chunk would be GETMAINedand the data placed into it. If, however, the session was defined to providea 2KB chunk of storage, a small problem would arise. The 2KB chunkwould be obtained, the 5,192 bytes of data would not fit, the 2KB chunkwould be FREEMAINed, a 5,912 byte chunk would be GETMAINed, andso forth.

Having enough storage at the outset avoids the unnecessary GETMAIN/FREEMAIN pair in the middle. Set the size to be larger than the AverageTIOA Storage value in the report – larger by adding 24 bytes for CICS useand “round the total up to a multiple of 64 bytes… (to) ensure a good useof operating system pages” – (from the Performance Guide).

The RDO parameter for setting the initial storage size for MRO functionships is on the SESSION definition. It is IOAREALEN. The default valueis 0. This forces CICS to interrogate the data length, and according to thePerformance Guide, “…get a storage size exactly the size of the outgoingmessage, plus 24 bytes for CICS requirements”. The Guide notes that if novalue is specified, CICS will use a size of 4KB. (It seems that CICS addsthe aforementioned 24 bytes to the 4KB and actually uses 4,120 bytes. Thisis a popular value seen in the summary reports.)

Two questions arise: are these IOAREALENs re-used, and where are they?They apparently are re-used and are above the line, according to research.Since they are reused, designating a large value for IOAREALEN is notvery wasteful. The number of IOAREALENs matches the number ofsessions defined for the connection and is not related to transactionvolume. If your session count is a reasonable number, the storage consumedshould be relatively small, and you can easily calculate the amount. Forexample, if you have 20 sessions and each of these has an IOAREALENof 4KB and you want to increase it to 8KB, you will use an additional (20* 4KB) or 80KB. This is an inconsequential amount of storage.

Page 18: CICS Performance Toolkit

18 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

The average message transmitted on the MRO link in Figure 3 was 5,912.A quick check of our resource definition showed a 4,096 value coded. Thiswas not quite large enough so the value was subsequently changed to 8KB.

The location of the IOARELENs is actually the SMTP subpool. Thissubpool is above the line and defined as that which “…holds line andterminal I/O areas” (Performance Guide). This can be seen readily in thesummary report in the storage manager statistics section.

Figure 3: Terminal section (right-hand side) report

_____________________________________________________________ Storage Input Output Xmission Avg TIOA Avg logged on Viols Messages Messages Errors Storage Time_____________________________________________________________

Ø 1558597 1546723 Ø 5912 Ø 16953Ø 168Ø89 Ø 5912 Ø 5339 5225 Ø 5912 Ø 131 123 Ø 5912 Ø Ø Ø Ø 5912 Ø Ø Ø Ø 5912

Figure 4: Statistics

STORAGE MANAGER STATISTICS_________________________________________________________________Subpool Location Access Getmain FreemainName Requests Requests_________________________________________________________________Before:SMTP ECDSA CICS 3,171,53Ø 3,171,525

After: (a week later after raising the IOARELEN to 8KB)SMTP ECDSA CICS 914,744 914,744

Page 19: CICS Performance Toolkit

19© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

RESULTS

The summary report will show you the results of your handiwork. Afteryou have increased the IOAREALEN to be larger than the Average TIOAStorage, here is where you look to see what happened (see Figure 4).

This busy FOR dropped the number of GETMAINs and FREEMAINs forthe SMTP subpool by two-thirds – over 2 million. It’s always nice to getmeasurable results. (Transaction volume and mix were roughly equivalentfor the two weeks.)

SUMMARY

Firstly, run the summary report for a typical day for your FOR(s) and AORsconnected to them with the SYSIN parameters SELECTTYPE=(TERMINAL,STORAGE) and SUMMARY.

Secondly, increase or decrease the number of sessions with the SENDCountand RECEIVECount parms to eliminate queueing or to dump that extra100 sessions you never use. Having the same value in the sessions fromthe AOR to the FORs as from the FOR to AORs makes the most sense andalso seems safest. (It certainly will avoid some session management andnegotiating between regions if one region is sending 20 requests out to aregion that will accept only 10 at a time.)

Thirdly, look in the Terminal section of your reports for the Average TIOAStorage used for each region. Obviously, the FORs will have the mostactivity, so let them drive the process. Select a number that will meet on-going needs.

Fourthly, make your change to the IOAREALENs and run the report again.Look in the STORAGE MANAGER STATISTICS section. Do a find on‘SMTP’ to determine whether it made a significant difference. You mightbe surprised!

Paul C GordonAssistant Vice PresidentBank of America (USA) © Xephon 2002

Page 20: CICS Performance Toolkit

20 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

CICS ISC/MRO session monitoring

Recently the CICS maintenance level at my current site was upgraded fromCICS/ESA Version 4.1 to CICS/TS Version 1.3. One of the problems weencountered was that CICS APPC connection sessions are getting releasedwith the following messages:

DFHZC3437 I Ø9/25/ØØ 1Ø:41:Ø7 CICSXXXX -XXN CSNE Node nnnnnnnn actiontaken:CLSDST ABTASK ABSEND ABRECV ((1) Module name: DFHZNAC)

DFHSN15ØØ Ø9/25/ØØ 1Ø:41:Ø7 CICSXXXX Session signoff for session -XXNi scomplete. 14 transactions entered with Ø errors.

DFHZC3462 I Ø9/25/ØØ 1Ø:41:Ø7 CICSXXXX -XXN CSNE Node nnnnnnnn sessionterminated. ((2) Module name: DFHZCLS)

In CICS/ESA Version 4.1 the session -XXN remained acquired but inCICS/TS V1.3 the -XXN session was released. CICS processing continueduntil only the session manager session remained acquired, at which timeprocessing from the partner LU is rejected – while the connection itselfremained INService and ACQuired.

While the CICS technical supports staff researched this problem we hadto find a way round it. The first thing we did was to code a program tomonitor the connection status, and CONNMON was coded and implemented.

CONNMON

This program monitors the use of the CICS systems programming interfaceto run the connection/terminal chains and displays the following information(up to 21 MRO/ISC connection entries):

CONNCTION NAME NETNAME SERVICE STATUS INS/OUT CONNCTIONS STATUS ACQ/REL ACQUIRED SESSION COUNT (FOR NON-XM) RELEASED SESSION COUNT (FOR NON-XM)

The program refreshes itself every three minutes, and allowed us to

Page 21: CICS Performance Toolkit

21© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

monitor the status of the MRO/ISC connections for the CICS region,especially the connection which is losing the sessions.

//JOBCARD JOB (CCS),'CSH CONNMON ',// CLASS=A,NOTIFY=&SYSUID,// MSGCLASS=X,MSGLEVEL=(1,1),REGION=8M//*//*//CONNMON EXEC DFHEITAL,PARM.TRN='SP' COND.LKED=(Ø,LE)//TRN.SYSIN DD ** PRINT NOGEN TITLE 'CSH DISPLAY MRO/ISC CONNECTION STATUS'********************************************************************************************************************************************* ****** DISPLAY UP TO 21 MRO/ISC CONNECTIONS WITHE FOLLOWING DATA: ****** ****** CONNCTION NAME ****** NETNAME ****** SERVICE STATUS INS/OUT ****** CONNCTIONS STATUS ACQ/REL ****** ACQUIRED SESSION COUNT (FOR NON-XM) ****** RELEASED SESSION COUNT (FOR NON-XM) ****** ****** ** REFRESHES DISPLAY EVERY 3 MINUTES ****** ** CLEAR SCREEN/FREEKB UPON CLEAR/PF3/PF1Ø ****** ****** ****** REGISTER USAGE TABLE ****** ****** R3 - BASE REG (DEFAULT) ****** R4 - BASE REG FOR DETAIL LINE ****** R5 - BASE REG FOR CONNECTION TABLE ****** R1Ø - LOOP COUNTER ****** R11 - EIB REG (DEFAULT) ****** R13 - DATA REG (DEFAULT) ****** ********************************************************************************************************************************************* COPY DFHAID COPY DFHBMSCASTFIELD EQU X'1D'NEWLINE EQU X'15' CVT DSECT=YES IEESMCA IHAPSADFHEISTG DSECTREQID DS ØCL8REQTERM DS CL4REQTRAN DS CL4

Page 22: CICS Performance Toolkit

22 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

LINEØ1 DS CL(LINEØ1L) ORG LINEØ1HEADERA DS CL2LTRANSID DS CL4HEADERTR DS CL28SYSID DS CL4 DS CL1APPLID DS CL8 DS CL4SMFID DS CL4 DS CL5HEADERT DS CL8 HH:MM:SS DS CL2HEADERD DS CL8 MM/DD/YY ORGLINEØ2 DS CL(3)LINEØ3 DS CL(LINEL)LINEØ4 DS CL(LINEL)LINEØ5 DS CL(LINEL)LINEØ6 DS CL(LINEL)LINEØ7 DS CL(LINEL)LINEØ8 DS CL(LINEL)LINEØ9 DS CL(LINEL)LINE1Ø DS CL(LINEL)LINE11 DS CL(LINEL)LINE12 DS CL(LINEL)LINE13 DS CL(LINEL)LINE14 DS CL(LINEL)LINE15 DS CL(LINEL)LINE16 DS CL(LINEL)LINE17 DS CL(LINEL)LINE18 DS CL(LINEL)LINE19 DS CL(LINEL)LINE2Ø DS CL(LINEL)LINE21 DS CL(LINEL)LINE22 DS CL(LINEL)LINE23 DS CL(LINEL)LINE24 DS CL(LINEL)SCREENL EQU *-LINEØ1CONNØ1 DS CL24CONNØ2 DS CL24CONNØ3 DS CL24CONNØ4 DS CL24CONNØ5 DS CL24CONNØ6 DS CL24CONNØ7 DS CL24CONNØ8 DS CL24CONNØ9 DS CL24CONN1Ø DS CL24CONN11 DS CL24

Page 23: CICS Performance Toolkit

23© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

CONN12 DS CL24CONN13 DS CL24CONN14 DS CL24CONN15 DS CL24CONN16 DS CL24CONN17 DS CL24CONN18 DS CL24CONN19 DS CL24CONN2Ø DS CL24CONN21 DS CL24CONN22 DS CL24RETURNC DS FABSTIME DS CL8TACQST DS FTERMID DS CL4TNETNAME DS CL8CONNMON DFHEIENT MVC REQTERM,EIBTRMID MOVE TERMID FOR REQUEST ID MVC REQTRAN,EIBTRNID MOVE TRANID FOR REQUEST ID EXEC CICS CANCEL TRANSID(EIBTRNID) REQID(REQID) RESP(RETURNC) CLI EIBAID,DFHCLEAR IS THIS CLEAR? BE RETURN YES, RETURN AND END CLI EIBAID,DFHPF3 IS THIS PF3? BE RETURN YES, RETURN AND END CLI EIBAID,DFHPF1Ø IS THIS PF1Ø? BE RETURN YES, RETURN AND END CLI EIBAID,DFHPF15 IS THIS PF15? BE RETURN YES, RETURN AND END CLI EIBAID,DFHPF22 IS THIS PF22? BE RETURN YES, RETURN AND END MVC LINEØ1,LINEØ1I MVC LINEØ2,LINEØ2I MVC LINEØ3,LINEØ2I MVC LINEØ4,LINEØ2I MVC LINEØ5,LINEØ2I MVC LINEØ6,LINEØ2I MVC LINEØ7,LINEØ2I MVC LINEØ8,LINEØ2I MVC LINEØ9,LINEØ2I MVC LINE1Ø,LINEØ2I MVC LINE11,LINEØ2I MVC LINE12,LINEØ2I MVC LINE13,LINEØ2I MVC LINE14,LINEØ2I MVC LINE15,LINEØ2I MVC LINE16,LINEØ2I MVC LINE17,LINEØ2I MVC LINE18,LINEØ2I MVC LINE19,LINEØ2I MVC LINE2Ø,LINEØ2I

Page 24: CICS Performance Toolkit

24 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

MVC LINE21,LINEØ2I MVC LINE22,LINEØ2I MVC LINE23,LINEØ2I MVC LINE24,LINEØ2I MVC CONNØ1,CONNØ1I MVC CONNØ2,CONNØ2I MVC CONNØ3,CONNØ3I MVC CONNØ4,CONNØ4I MVC CONNØ5,CONNØ5I MVC CONNØ6,CONNØ6I MVC CONNØ7,CONNØ7I MVC CONNØ8,CONNØ8I MVC CONNØ9,CONNØ9I MVC CONN1Ø,CONN1ØI MVC CONN11,CONN11I MVC CONN12,CONN12I MVC CONN13,CONN13I MVC CONN14,CONN14I MVC CONN15,CONN15I MVC CONN16,CONN16I MVC CONN17,CONN17I MVC CONN18,CONN18I MVC CONN19,CONN19I MVC CONN2Ø,CONN2ØI MVC CONN21,CONN21I MVC CONN22,CONN22I** MVC EIBTRNID,LTRANSID USING PSA,Ø L 1,FLCCVT USING CVT,1 L 1,CVTSMCA USING SMCABASE,1 MVC SMFID,SMCASID MOVE IN SMF ID DROP 1 EXEC CICS ASSIGN SYSID(SYSID) APPLID(APPLID) EXEC CICS ASKTIME ABSTIME(ABSTIME) EXEC CICS FORMATTIME ABSTIME(ABSTIME) X TIME(HEADERT) TIMESEP MMDDYY(HEADERD) DATESEP EXEC CICS INQUIRE CONNECTION START RESP(RETURNC) LA 5,CONNØ1 USING CONNDSCT,5 LA 1Ø,22 INITIALIZE LOOP COUNTER*CONNLOOP DS ØH EXEC CICS INQUIRE CONNECTION(CONNNAME) NETNAME(NETNAME) X CONNSTATUS(CONNSTA) SERVSTATUS(SERVSTA) NEXT X RESP(RETURNC) CLC RETURNC,DFHRESP(NORMAL) BNE CONNDONE

Page 25: CICS Performance Toolkit

25© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

LA 5,CONNL(5) NEXT ENTRY BCT 1Ø,CONNLOOP*CONNDONE DS ØH EXEC CICS INQUIRE CONNECTION END RESP(RETURNC)* EXEC CICS INQUIRE TERMINAL STARTTERMINQL DS ØH EXEC CICS INQUIRE TERMINAL(TERMID) NEXT RESP(RETURNC) X ACQSTATUS(TACQST) NETNAME(TNETNAME) CLC RETURNC,DFHRESP(NORMAL) SEE IF NORMAL RETURN BNE TERMINQE* LA 1Ø,22 INTIALIZE LOOP COUNTER LA 5,CONNØ1 GO TO FIRST CONNECTIONTESTCONN DS ØH CLC NETNAME,TNETNAME BNE NEXTCONN CLC TACQST,DFHVALUE(ACQUIRED) BE TSETACQ CLC TACQST,DFHVALUE(RELEASED) BNE TERMINQL AP SESSRELC,=P'1' ADD ONE TO RELEASED SESSION COUNTER B TERMINQLTSETACQ DS ØH AP SESSACQC,=P'1' ADD ONE TO ACQUIRED SESSION COUNTER B TERMINQLNEXTCONN DS ØH LA 5,CONNL(5) TEST NEXT CONN ENTRY BCT 1Ø,TESTCONN B TERMINQL NEXT TERMINAL*TERMINQE DS ØH EXEC CICS INQUIRE TERMINAL END*SENDTEXT DS ØH LA 4,LINEØ3 LA 5,CONNØ1 USING LINEDSCT,4 LA 1Ø,22 INITIALIZE LOOP COUNTERLINELOOP DS ØH CLI CONNNAME,C' ' BLANKS? BE ACQDONE NO, SET UP LINEDOCONN DS ØH MVC LINEOUT(LINEL),LINEØ3I MOVE CONSTANTS MVC CONNO,CONNNAME MOVE CONNECTION NAME MVC NETNO,NETNAME MOVE NETNAME ED SESSACNT,SESSACQC UNPACK ACQUIRED COUNT FOR CONNECTION ED SESSRCNT,SESSRELC UNPACK RELEASED COUNT FOR CONNECTION MVC INSSTAO,=CL3'OUT'

Page 26: CICS Performance Toolkit

26 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

CLC SERVSTA,DFHVALUE(INSERVICE) BNE SERVDONE MVC INSSTAO,=CL3'INS'SERVDONE DS ØH MVC ACQSTAO,=CL3'REL' CLC CONNSTA,DFHVALUE(ACQUIRED) BNE ACQDONE MVC ACQSTAO,=CL3'ACQ'ACQDONE DS ØH LA 4,LINEL(4) DO NEXT LINE LA 5,CONNL(5) DO NEXT CONNECTION BCT 1Ø,LINELOOP* EXEC CICS SEND TEXT FROM(LINEØ1) LENGTH(SENDL) ERASE FREEKB*RETURNE DS ØH EXEC CICS START TRANSID(EIBTRNID) INTERVAL(ØØØ3ØØ) X TERMID(EIBTRMID) REQID(REQID) RESP(RETURNC) EXEC CICS RETURN TRANSID(EIBTRNID)*RETURN DS ØH EXEC CICS SEND TEXT FROM(ENDLINE) LENGTH(ENDLINEL) X ERASE FREEKB EXEC CICS RETURN** CONSTANTS*LINEØ1I DS CL(LINEØ1L) ORG LINEØ1ILINEØ1II DC AL1(STFIELD,DFHBMASK) DC CL4' ' DC CL28' ISC CONNECTION MONITOR' DC CL4' ' DC CL1'/' DC CL8' ' DC CL4' ON ' DC CL4' ' DC CL5' ' DC CL8' ' HH:MM:SS DC CL2' ' DC CL8' ' MM/DD/YYLINEØ1L EQU *-LINEØ1II ORGLINEØ2I DC AL1(NEWLINE,STFIELD,DFHBMASK) DC CL77' 'LINEØ3I DS CL(LINEL) ORG LINEØ3I DC AL1(NEWLINE,STFIELD,DFHBMASK) DC CL4' ' CONN DC CL1' ' DC CL8' ' NETNAME

Page 27: CICS Performance Toolkit

27© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

DC CL2' ' DC CL3' ' INS STA DC CL1' ' DC CL3' ' ACQ STA DC CL18' SESSIONS ACQ: ' DC X'4Ø2Ø212Ø' ACQ CNT DC CL5' REL:' DC X'4Ø2Ø212Ø' REL CNT ORG DS ØHENDLINEL DC AL2(L'ENDLINE)ENDLINE DC CL8Ø' ENTER NEXT TRANSACTION'SENDL DC AL2(SCREENL) DS ØFCONNØ1I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONNØ2I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONNØ3I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONNØ4I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONNØ5I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONNØ6I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONNØ7I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONNØ8I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONNØ9I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN1ØI DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN11I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN12I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN13I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN14I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN15I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN16I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN17I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN18I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN19I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN2ØI DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN21I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'CONN22I DC CL4' ',CL8' ',F'Ø',F'Ø',PL2'Ø',PL2'Ø'*LINEDSCT DSECTLINEOUT DS CL3CONNO DS CL4 DS CL1NETNO DS CL8 DS CL2INSSTAO DS CL3 DS CL1ACQSTAO DS CL3 DS CL18SESSACNT DS CL4 DS CL5SESSRCNT DS CL4

Page 28: CICS Performance Toolkit

28 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

LINEL EQU *-LINEOUT* DS ØFCONNDSCT DSECTCONNNAME DS CL4NETNAME DS CL8CONNSTA DS FSERVSTA DS FSESSACQC DS PL2SESSRELC DS PL2CONNL EQU *-CONNNAME END//*//ASM.SYSLIB DD// DD// DD// DD// DD DISP=SHR,DSN=SYS1.MODGEN//LKED.SYSLMOD DD DISP=SHR,DSN=CICS.PROGRAM.LOADLIB(COMMON)

CONNACQR

While the problem of sessions being released was being researched, wewere having to release and re-acquire the sessions (because the sessionscan’t be acquired at session level, only at the connection level). We werehaving to monitor the connection and release/re-acquire manually evenduring the off-shift hours, and it was decided we had to automate theprocess. Program CONNACQR was written to perform this function.

Program CONNACQR is added to DFHPLTPI to be executed at CICSintialization, and starts the transaction named in label TRANSID (currentlywith content of CL4’ACQR’) in three minutes. When the transactionstarts, it checks for the connection/netname named in labels CONN/CONNNETN and tests the count of acquired sessions for that connectionusing the CICS SPI interface commands. If the count of acquired connectionsis less than two, then the connection is released and re-acquired (with a 5-second wait in between) also using CICS SPI interface commands.

//JOBCARD JOB (CCS),'CSH CONNACQR ',// CLASS=A,NOTIFY=&SYSUID,// MSGCLASS=X,MSGLEVEL=(1,1),REGION=8M//*//CONNACQR EXEC DFHEITAL,PARM.TRN='SP' COND.LKED=(Ø,LE)//TRN.SYSIN DD ** PRINT NOGEN

Page 29: CICS Performance Toolkit

29© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

TITLE 'CSH CONNECTION TESTING/REAQUIRE PROGRAM'********************************************************************************************************************************************* ****** COUNTS THE ACQUIRED SESSIONS FOR A PARTICULAR ISC CONNECTION ****** DENOTED BY THE LABELS: ****** CONN DC CL4'XXXX' ****** CONNNETN DC CL8'NNNNNNNN' ****** IN THE PROGRAM. IF THE NUBMER OF SESSIONS FALLS BELOW TWO, ****** THE CONNECTION IS RELEASED AND THEN ACQUIRED. ****** ****** THE PROGRAM IS STARTED VIA DFHPLTPI, STARTED AS TRANSID ****** IN THE PROGRAM LABEL (CURRENTLY 'ACQR') ****** ****** TRANSID DC CL4'ACQR' ****** ****** THE TRANSACTION IS STARTED AND ACTIVATES EVERY FIVE MINUTES, ****** TO DO THE TEST/RELEASE/ACQUIRE PROCESSING. THE PROGRAM WILL ****** ALSO CHECK FOR CICS SHUTDOWN STATUS AND TERMINATE UPON CICS ****** SHUTDOWN ****** ****** ****** REGISTER USAGE TABLE ****** ****** R3 - BASE REG (DEFAULT) ****** R11 - EIB REG (DEFAULT) ****** R13 - DATA REG (DEFAULT) ****** *********************************************************************************************************************************************DFHEISTG DSECTRETURNC DS FSTATUS DS FTERMID DS CL4NETNAME DS CL8COUNT DS PL2CONNACQR DFHEIENT* CLC EIBTRNID,TRANSID ARE WE RUNNING ALREADY? BE RUNXACT EXEC CICS START TRANSID(TRANSID) INTERVAL(3ØØ) RESP(RETURNC) B RETURNX*RUNXACT DS ØH EXEC CICS INQUIRE SYSTEM SHUTSTATUS(STATUS) RESP(RETURNC) CLC STATUS,DFHVALUE(NOTAPPLIC) BNE RETURN* ZAP COUNT,=P'Ø' EXEC CICS INQUIRE TERMINAL START RESP(RETURNC)TERMINQL DS ØH

Page 30: CICS Performance Toolkit

30 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

EXEC CICS INQUIRE TERMINAL(TERMID) NEXT RESP(RETURNC) X ACQSTATUS(STATUS) NETNAME(NETNAME) CLC RETURNC,DFHRESP(NORMAL) SEE IF NORMAL RETURN BNE TERMINQE CLC NETNAME,CONNNETN BNE TERMINQL CLC STATUS,DFHVALUE(ACQUIRED) BNE TERMINQL AP COUNT,=P'1' ADD ONE TO ACQUIRED SESSION COUNTER B TERMINQL*TERMINQE DS ØH EXEC CICS INQUIRE TERMINAL END RESP(RETURNC) CP COUNT,=P'1' BH DELAY* EXEC CICS SET CONNECTION(CONN) RELEASED RESP(RETURNC) EXEC CICS DELAY INTERVAL(ØØØØØ5) EXEC CICS SET CONNECTION(CONN) INSERVICE ACQUIRED X RESP(RETURNC) EXEC CICS WRITE OPERATOR X TEXT('*** ISC CONNECTION XXXX RELEASE/ACQUIRED') X TEXTLENGTH(4Ø) RESP(RETURNC)DELAY DS ØH EXEC CICS DELAY INTERVAL(ØØØ455) B RUNXACT*RETURN DS ØH EXEC CICS WRITE OPERATOR X TEXT('*** ISC CHECK/ACQUIRE TRANSACTION ENDED ') X TEXTLENGTH(4Ø) RESP(RETURNC)RETURNX DS ØH EXEC CICS RETURN*TRANSID DC CL4'ACQR'CONN DC CL4'XXXX'CONNNETN DC CL8'NNNNNNNN' END//*//LKED.SYSLMOD DD DISP=SHR,DSN=CICS.PROGRAM.LOADLIB(CONNACQR)

The transaction is a long-running one with the program waiting for fiveminutes between checking the connection status and REL/ACQ actions.The program also checks for CICS shutdown status and terminates itselfupon CICS termination.

Chorng S (Jack) HwangPrincipalHSA Systems (USA) © Xephon 2002

Page 31: CICS Performance Toolkit

31© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Monitoring system logger activity online

With the launch of CICS Transaction Server for OS/390, the MVS systemlogger has become the important feature for using CICS/TS successfully.Many companies have already migrated to CICS/TS, but a lot of migrationwork is still to be done before CICS/ESA goes out of service.

A very important task when running CICS/TS is to monitor the logger setup for CICS. Therefore IBM provided the batch program IXGRPT1, whichis supplied in SYS1.SAMPLIB. A CICS systems programmer should bevery familiar with this program in order to understand whether CICS’ssystem logs, DFHLOG and DFHSHUNT, are well defined and tuned.IXGRPT1 is an excellent window into the MVS system logger. The inputfor IXGRPT1 are the SMF88 records.

However, during my work at IBM’s CICS support group I have had a lotof contact with customers running CICS/TS who don’t know aboutIXGRPT1. This inevitably leads to problems. A lot of people find itdifficult to interpret IXGRPT1 output and to understand the figures andthe critical situations.

To give an alternative to IXGRPT1 I wrote program IXGRPTC (C standsfor CICS) and program IXGSMF8. Both programs run under CICS. Thefirst program displays the local log streams used by CICS (see below):

JOURNALNAME STREAMNAME TYPE STATUS ���������������������������� DFHJØ2 CICS.IV4A53A1.DFHJØ2 MVS ENABLED DFHLGLOG CICSUSER.IV5A53A1.DFHLGLOG MVS ENABLED DFHLOG CICS.IV4A53A1.DFHLOG MVS ENABLED DFHSHUNT CICS.IV4A53A1.DFHSHUNT MVS ENABLED

NOTE: PUT THE CURSOR ON A STREAMNAME AND PRESS ENTER KEY

SYSID=53A1 APPLID=IV4A53A1PF 3 END

You can easily select a log stream by putting the cursor on a log stream nameand pressing enter. Now the second program will be invoked to display theSMF88 interval records on screen (see below) for the previously selectedlog stream:

Page 32: CICS Performance Toolkit

32 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

SMF INTERVAL: 1Ø /3 3������� PRODUCT SECTION ��������������������MVS OPERATION SYSTEM NAME: MCEVS4 RELEASE: SP6.1.Ø������� LOG STREAM SECTION �������������������LOG STREAM NAME: CICS.IV4A53A1.DFHLOG TOD-TIME: 2ØØ1/Ø5/Ø713:ØØ:ØØ# WRITES INVOKED : 13.42ØBYT WRITTN BY USERS IXGWRITES : 69.247.11ØMIN. BLOCKLEN IN SMF INTERVAL : 12Ø (INITIALIZED TOX"7FFFFFFF" IF NO SMF ACTIVITY OCCURS WITHIN AN SMF INTERVAL.)MAX. BLOCKLEN IN SMF INTERVAL : 1Ø.276������� STRUCTURE (INTERIM STORAGE) SECTION ���������������������(DASD) ��������������STRUCTURE NAME: LOG_DFHLOG_ØØ1BYT WRITTN TO INTERIM STORAGE : 71.ØØØ.32Ø BYT WRITTN TODASD : 64.578.371BYT DELETD INTERIM ST W/O DASD : 5.246.898 BYT DELETDINTERIM ST W/DASD : 64.Ø81.571# DELETES W/O DASD WRITE : 986 # DELETS W/WRITE: 12.42Ø# WRITES COMPLETED - TYPE 1 : 12.124 (TYPE1 = LOG STREAMCONTENTS CAN REMAIN IN STRUCTURE. NO NEED TO MOVE DATA.)# WRITES COMPLETED - TYPE 2 : 1.2Ø6 (TYPE2 = LOG STREAM ISFILLING THE STRUCTURE. LOGGER STARTS OFFL. ASYNC.)# WRITES COMPLETED - TYPE 3 : 87 (TYPE3 = SPACE USED INTHE STRUCTURE IS CRITICAL BUT DOES NOT EXCEED 1ØØ%.)������� EVENTS SECTION ���������������������DASD SHFT : 136 STRC FULL : 3 OFFLOADS : 1Ø4(NUMBER OF SUCCESSFUL OFFLOADS)REBLD INI : Ø STG THLD : Ø OFFL.9Ø% : 244(NO.OF SUSUCCESSFUL OFFLOADS DUE TO STRUC.REACHING 9Ø% FULLREBLD CMP : Ø STG FULL : Ø IXGOFFLD : Ø(NUMBER OF TIMES AN OFFLOAD WAS REQUESTED VIA IXGOFFLD SERV������������������������������������

PF 3 RETURN 7 UP 8 DOWN 9 FIRST I. 1Ø MIDLE I. 11LAST I. (I. = SMF INTERVAL)PF 13 DASD SHFT 14 OFFLOAD 15 STG FULL 16 STG THLD 17 STR FULL 18OFFL.9Ø% 23 AVERAGE 24 TOTALS

Because of the huge amount of data in one interval, session property screensize 27x132 is mandatory.

This method has some advantages, including:

1 Online access to SMF88 records without needing to run batch jobs.

2 All variables for a single SMF interval on a screen.

Page 33: CICS Performance Toolkit

33© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

3 Every value prefixed by a description and some suffixed with anexplanation.

4 Different colours for quantity variables (in green, eg number of byteswritten to logger) and event variables (in red, eg structure full).

5 Exception monitoring with PF keys (PF13 - PF18); eg PF13 = showme the interval with the highest number of DASD shifts (DASD shift= allocating a new offload dataset), or PF17 = display the interval withstructure full condition on maximum.

The input for the CICS programs are the same SMF88 records as used bythe batch version, but the organization format is different. I use a VSAMKSDS cluster instead of ESDS datasets. The data is copied by a thirdprogram (batch part) IXGRPTB (B stands for batch) when an SMF datasetswitch occurs. Only CICS logstreams are selected by program IXGRPTB.A clean-up routine deletes the records from files that are older than aspecified time in days. You should use the same jobstream as provided forIXGRPT1 in the Redbook CICS Transaction Server for OS/390: Version1 Release 2 Implementation Guide (SG24-2234-00) on page 100/101.Replace the last step by program IXGRPTB. The DD statement for inputis SMF88IN, for output SMF88OT.

Checklist:

1 Define the KSDS cluster with INDEXED, KEYS(36 100) – forexample:

//DEFINE EXEC PGM=IDCAMS,REGION=1M//SYSPRINT DD SYSOUT=*//SYSIN DD * DELETE CICS53.CICS.IXGSMF88 SET LASTCC=Ø SET MAXCC=Ø DEFINE CLUSTER(NAME(CICS53.CICS.IXGSMF88)- INDEXED - CYL(5 2)- SHR(3,3)- FREESPACE(1Ø 1Ø)- REUSE - KEYS(36 1ØØ)- RECORDSIZE(276 32756) )/ */ /

Page 34: CICS Performance Toolkit

34 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

2 Copy SMF88 records with IXGRPTB at every SMF dataset switch –for example:

//* UNLOAD SMF DATA SET CONTAINING CICS DATA//SMFDUMP EXEC PGM=IFASMFDP//INDD1 DD DISP=SHR,BUFNO=2Ø,DSN=SYS1.MAN1//OUTDD1 DD DSN=&&TEMP,DISP=(NEW,PASS),SPACE=(CYL,(12,5)),UNIT=SYSDA//SYSPRINT DD SYSOUT=*//SYSIN DD * INDD(INDD1,OPTIONS(DUMP)) OUTDD(OUTDD1,TYPE(88))/ *//* COPIES SMF RECORDS TYPE 88 ONLY//COPYSEL EXEC PGM=SORT,REGION=1Ø24K//SYSOUT DD SYSOUT=*//SYSABEND DD SYSOUT=*//SORTIN DD DSN=&&TEMP,DISP=(OLD,PASS)//SORTOUT DD DSN=&&TEMP1,DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(12,5))//SYSIN DD * OPTION COPY INCLUDE COND=(6,1,BI,EQ,X'58')/ *//* SORT EQCH SMF INPUT BY TIMESTAMP AND LOGSTREAM NAME//SORT1 EXEC PGM=SORT//SYSOUT DD SYSOUT=*//SYSABEND DD SYSOUT=*//SORTIN DD DSN=&&TEMP1,DISP=(OLD,DELETE)//SORTOUT DD DSN=&&TEMP2,DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(5,1))//SYSIN DD * OPTION VLSHRT SORT FIELDS=(133,8,BI,A, 1Ø5,26,CH,A) INCLUDE COND=(23,2,BI,EQ,X'ØØØ1')/ *//* EXECUTE PL/I PROGRAM IXGRPTB//IXGRPTB EXEC PGM=IXGRPTB,PARM='ØØ3' /* CLEANUP INTERAL IN DAYS *///STEPLIB DD DISP=SHR,DSN=user.loadlib//SYSPRINT DD SYSOUT=*//SMF88IN DD DISP=(OLD,PASS),DSN=&&TEMP2//SMF88OT DD DISP=SHR,DSN=CICS53.CICS.IXGSMF88

3 CICS program definition for IXGRPTC and IXGSMF8 with LanguageLE370.

4 CICS transaction definition for IXGC (IXGRPTC) and IXG8(IXGSMF8).

5 CICS mapset definition for IXGMAPSM.

Page 35: CICS Performance Toolkit

35© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

6 CICS file definition for file IXGSMF88 with RECORDFormat V andOPERATIONs Browse and READ.

Because CICS uses this file as read-only you can update the file from batchwithout problems. To get all the data before using the transaction, youshould close and reopen the file in CICS. A better way is to use a file owningregion and update the file via EXCI. The best way is to use SMSVSAM.

Readers who wish to discuss the material in this article further may contactme via e-mail, at [email protected].

IXGRPTB

*PROCESS LANGLVL(OS,SPROG);IXGRPTB :PROCEDURE (MVSPARMSTRING) OPTIONS(MAIN);DCL PLIXOPT CHAR(2ØØ) VAR INIT('SYSTEM(MVS),NOEXECOPS') STATIC EXTERNAL;%INCLUDE SMF88STR;%INCLUDE CEEIBMAW;%INCLUDE CEEIBMCT;DCL MVSPARMSTRING CHAR(1ØØ) VAR;DCL 1 FILLØ4 UNAL BASED(ADDR(MVSPARMSTRING)), 2 FILLØ5 CHAR(2), 2 CLEANUP_INTERVAL PIC'999';DCL CLEANUP_INTERVAL_BIN FIXED BIN(15);DCL IXGR1A OPTIONS(ASSEMBLER INTER) ENTRY(CHAR(8), CHAR(24));DCL SMF88IN FILE RECORD INPUT;DCL SMF88OT FILE RECORD KEYED ENV(VSAM,SIS,V);DCL WORKAREA CHAR(32756) VAR;DCL TIMEDATE_CHAR_88 CHAR(24);DCL 1 FILLØ2 BASED(ADDR(TIMEDATE_CHAR_88)), 2 TODTIME CHAR(8), 2 FILLØ3 CHAR(8), 2 TODDATE CHAR(8);DCL TIMEDATE_JULIAN_88 FIXED BIN(31);DCL TIMEDATE_JULIAN_CUR FIXED BIN(31);DCL TIMEDATE_SECONDS_CUR FLOAT DEC(16);DCL TIMEDATE_GREGORN_CUR CHAR(17);DCL 1 LGSEGMENT BASED(SMF88LOF), 2 FILLØ1 CHAR(8), 2 KEY, /* KEY FOR VSAM KSDS */ 3 KEY_PART1 CHAR(26), /* => SMF88LSN */ 3 KEY_PART2 CHAR(2), /* => SMF88LFL */ 3 KEY_PART3 CHAR(8); /* => SMF88LTD */DCL SYSPRINT FILE;DCL (CSTG,LENGTH,SUBSTR,ONCODE,POINTERADD,STRING,VERIFY, PLIRETC) BUILTIN;

Page 36: CICS Performance Toolkit

36 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

DCL (EOF,STRING_FOUND) BIT(1) INIT('Ø'B);DCL (TRUE) BIT(1) STATIC INIT('1'B);DCL (FALSE) BIT(1) STATIC INIT('Ø'B);DCL (C,D,E,I) FIXED BIN(31) INIT(Ø);DCL P PTR;DCL X CHAR(4) BASED(P); /* DSECT FOR DFHJ*, DFHL*, DFHS* */DCL 1 FC, /* FEEDBACK TOKEN */ 2 MSGSEV FIXED BIN(15), 2 MSGNO FIXED BIN(15), 2 FLAGS, 3 CASE BIT(2), 3 SEVERITY BIT(3), 3 CONTROL BIT(3), 2 FACID CHAR(3), /* FACILITY ID */ 2 ISI FIXED BIN(31); /* INSTANCE-SPECIFIC INFORMATION */ON ENDFILE(SMF88IN) EOF='1'B;ON ENDFILE(SMF88OT) EOF='1'B;ON KEY(SMF88OT) BEGIN; /* PUT SKIP LIST('ON KEY CONDITION RAISED, ONCODE=', ONCODE()); */ IF ONCODE = 52 /* 52 = DUPLICATE KEY */ THEN D = D + 1; /* BUMP DUPLICATE RECORD COUNTER */ /* PUT SKIP LIST ('DUPLICATE KEY = '||STRING(KEY)); */ END;/* **************************************************************** *//* IF VSAM CLUSTER IS EMPTY, OPEN IN SEQUENTIAL MODE, CLOSE AND *//* REOPEN IN DIRECT MODE. *//* **************************************************************** */ON UNDEFINEDFILE(SMF88OT) BEGIN; PUT SKIP LIST('ON UNDEFINEDFILE CONDITION RAISED, ONCODE=', ONCODE()); IF ONCODE = 82 /* 82 = DATA SET NEVER LOADED */ THEN BEGIN; OPEN FILE(SMF88OT) OUTPUT SEQUENTIAL; KEY_PART2 = 'ØØØØ'X; CALL FORMAT_TOD; SUBSTR(WORKAREA,1,LENGTH(WORKAREA)) = REAL_RECORD; WRITE FILE (SMF88OT) FROM (WORKAREA) KEYFROM(STRING(KEY)); CLOSE FILE(SMF88OT); OPEN FILE (SMF88OT) OUTPUT DIRECT; END; END;/* **************************************************************** *//* GET CLEANUP INTERVAL FROM MVS PARMS (IF AVAILABLE ). *//* **************************************************************** */

Page 37: CICS Performance Toolkit

37© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

IF VERIFY(SUBSTR(MVSPARMSTRING,1,3),'Ø123456789') = Ø /* NUMERIC? */ THEN CLEANUP_INTERVAL_BIN = CLEANUP_INTERVAL; /* YES. */ ELSE CLEANUP_INTERVAL_BIN = 3; /* NO. DEFAULT IS 3 DAYS */PUT SKIP DATA( CLEANUP_INTERVAL_BIN );/* **************************************************************** *//* SELECT LOGSTREAMS WITH QUALIFIER DFHL*, DFHS* AND DFHJ* *//* **************************************************************** */OPEN FILE(SMF88IN);READ FILE(SMF88IN) INTO(WORKAREA);SUBSTR(REAL_RECORD,1,LENGTH(WORKAREA)) = WORKAREA;OPEN FILE(SMF88OT) OUTPUT DIRECT;DO WHILE(¬EOF); /* IS IT A CICS LOGSTREAM ? */ P = ADDR(SMF88LSN); STRING_FOUND = FALSE;A: DO I = 1 TO 23; /* LENGTH OF LOG STREAM NAME - 4 + 1 */ IF X = 'DFHL' | X = 'DFHS' | X = 'DFHJ' THEN DO; STRING_FOUND = TRUE; LEAVE A; END; P = POINTERADD(P,1); END A; /* PROCESS RECORD */ IF STRING_FOUND = TRUE THEN DO; C = C + 1; KEY_PART2 = 'ØØØØ'X; CALL FORMAT_TOD; SUBSTR(WORKAREA,1,LENGTH(WORKAREA)) = REAL_RECORD; WRITE FILE(SMF88OT) FROM(WORKAREA) KEYFROM(STRING(KEY)); END; /* NEXT READ */ READ FILE(SMF88IN) INTO(WORKAREA); SUBSTR(REAL_RECORD,1,LENGTH(WORKAREA)) = WORKAREA;END;CLOSE FILE(SMF88IN);CLOSE FILE(SMF88OT);/*******************************************************************//* CLEANUP - DELETE ALL RECORDS WITH A CREATION DATE GT 1Ø *//*******************************************************************/EOF = FALSE;/* GET CURRENT DATE IN JULIAN DATE FORMAT */CALL CEELOCT(TIMEDATE_JULIAN_CUR,TIMEDATE_SECONDS_CUR, TIMEDATE_GREGORN_CUR,FC);OPEN FILE(SMF88OT) SEQUENTIAL UPDATE;READ FILE(SMF88OT) INTO(WORKAREA); /* FIRST READ */DO WHILE(¬EOF); SUBSTR(REAL_RECORD,1,LENGTH(WORKAREA)) = WORKAREA;

Page 38: CICS Performance Toolkit

38 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

CALL IXGR1A(SMF88LTD,TIMEDATE_CHAR_88); /* CONVERT SMF DATE FORMAT TO JULIAN DATE FORMAT */ CALL CEEDAYS(SUBSTR(TIMEDATE_CHAR_88,17,8),'YYYYMMDD', TIMEDATE_JULIAN_88,FC); IF TIMEDATE_JULIAN_CUR - TIMEDATE_JULIAN_88 > CLEANUP_INTERVAL_BIN THEN DO; DELETE FILE(SMF88OT); /* DELETE THE LAST RECORD -*/ E = E + 1; /* IT'S OLDER THAN 1Ø DAYS */ END; READ FILE(SMF88OT) INTO(WORKAREA); /* NEXT READ */END;CLOSE FILE(SMF88OT);/*******************************************************************//* ISSUE MESSAGES, SET RETURN-CODE AND RETURN TO MVS *//*******************************************************************/PUT SKIP LIST('COUNTER RECORDS ALL :'); PUT DATA(C);PUT SKIP LIST('COUNTER RECORDS DUPL.:'); PUT DATA(D);PUT SKIP LIST('COUNTER RECORDS DEL. :'); PUT DATA(E);IF C = Ø THEN CALL PLIRETC(4); /* NO RECORDS LOADED */IF D > Ø THEN CALL PLIRETC(8); /* SOME DUPLICATE RECORDS */IF D>Ø & D=C THEN CALL PLIRETC(12); /* ALL RECORDS DUPLICATE */RETURN;FORMAT_TOD: PROC;CALL IXGR1A(SMF88LTD,TIMEDATE_CHAR_88);SMF88PNM = TODDATE;SMF88LIT = TODTIME;END FORMAT_TOD;END IXGRPTB;

IXGRPTC

*PROCESS MACRO SYSTEM(CICS) LANGLVL(SPROG) XREF(FULL); IXGRPTC: PROC(COMPTR) OPTIONS(MAIN); /*******************************************************************/ /* DISPLAY SMF88 DATA ONLINE */ /*******************************************************************/ %INCLUDE IXGMAPS; /* DSECT GENERATED BY BMS */ %INCLUDE (DFHAID); DCL COMPTR PTR; DCL XRESP FIXED BIN(31); DCL XABSTIME DEC FIXED(15); DCL XSYSID CHAR(4), XAPPLID CHAR(8); DCL (ADDR,CHAR,CSTG,STG,LOW,HIGH,SUBSTR,LENGTH) BUILTIN; DCL STR CHAR(32767) BASED; DCL I,J,K,C FIXED BIN(15); /* I,J,K FOR GENERAL PURPOSES, C=CURSOR */ DCL REQJOUR CHAR(8); DCL XJOURNALNAME CHAR(8), XSTREAMNAME CHAR(26), XSTATUS FIXED BIN(31), CSTATUS CHAR(8),

Page 39: CICS Performance Toolkit

39© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

XTYPE FIXED BIN(31), CTYPE CHAR(8); DCL XCOMMAREA CHAR(CSTG(XCOMMAREA_DATA)) INIT( LOW(CSTG(XCOMMAREA_DATA))) CONTROLLED; DCL 1 XCOMMAREA_DATA UNAL BASED(COMPTR), 2 EYECATCHER CHAR(8), 2 TAB_IDX FIXED BIN(15), 2 TAB_STRNM (6:17) CHAR(26), 2 NEXT_FUNCTION CHAR(2Ø); DCL END_MESSAGE CHAR(4Ø) INIT('IXGRPTC TERMINATED'); DCL 1 TO_IXGSMF8_CA, 2 FILLØ1 CHAR(8) INIT('IXGSMF8'), 2 FILLØ2 CHAR(2Ø) INIT('FIRST_INVOCATION'), 2 STRNM CHAR(26), 2 LSFLAGS CHAR(2), 2 TIMESTAMP CHAR(8), 2 MAXITEM FIXED BIN(15), 2 LASTITEM FIXED BIN(15), 2 TSQNAME CHAR(8), 2 ACCUM_TAB (2Ø), 3 ACCUMULATOR FLOAT BIN(64), 2 MAX_TAB (22), 3 MAXIMUM FLOAT BIN(64), 3 TSQITEM FIXED BIN(15); DCL SCREEN_LINES FIXED BIN(15); DCL SCREEN_COLS FIXED BIN(15); IF EIBCALEN=Ø THEN DO; ALLOCATE XCOMMAREA; COMPTR=ADDR(XCOMMAREA); EYECATCHER='IXGRPTC'; NEXT_FUNCTION = '***'; END; SELECT(EIBAID); WHEN(DFHPF3) IF EIBCALEN > Ø THEN NEXT_FUNCTION = 'RETURN_TO_CICS'; WHEN(DFHENTER) DO; IF EIBCALEN>Ø THEN DO; C=EIBCPOSN/8Ø; IF (TAB_IDX>5 & C>TAB_IDX) | C<6 | C>17 THEN DO; EXEC CICS SEND MAP ('INVCURS') MAPSET('IXGMAPS') RESP(XRESP); GOTO RETURN_TO_CICS; END; EXEC CICS ASSIGN ALTSCRNHT(SCREEN_LINES) ALTSCRNWD(SCREEN_COLS) RESP(XRESP);

Page 40: CICS Performance Toolkit

40 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

IF SCREEN_LINES < 27 | SCREEN_COLS < 132 THEN DO; EXEC CICS SEND MAP ('INVSCRN') MAPSET('IXGMAPS') RESP(XRESP); GOTO RETURN_TO_CICS; END; /* START READING SMF88 FILE */ STRNM=TAB_STRNM(C); LSFLAGS=LOW(LENGTH(LSFLAGS)); TIMESTAMP=LOW(LENGTH(TIMESTAMP)); MAXITEM=Ø; LASTITEM=Ø; EXEC CICS RETURN TRANSID('IXG8') IMMEDIATE COMMAREA(TO_IXGSMF8_CA) LENGTH(CSTG(TO_IXGSMF8_CA)) RESP(XRESP); END; END; OTHERWISE DO; EXEC CICS SEND MAP ('INVKEY') MAPSET('IXGMAPS') RESP(XRESP); GOTO RETURN_TO_CICS; END; END; SELECT (NEXT_FUNCTION); WHEN ('RETURN_TO_CICS') DO; EXEC CICS SEND TEXT FROM(END_MESSAGE) ERASE LAST RESP(XRESP); EXEC CICS RETURN; /* STOP RUN */ END; OTHERWISE; END; /* END SELECT */ LØ1Ø: /* SEND FIRST MAP */ /* CLEAR MAP */ SUBSTR(ADDR(IXGMAP1O)->STR,1,STG(IXGMAP1O))=LOW(STG(IXGMAP1O)); TAB_IDX=5; /* SET TAB_IDX TO THE 5TH. LINE ON SCREEN */ /* VARIABLES INTO MAP */ EXEC CICS ASSIGN SYSID(XSYSID) APPLID(XAPPLID); SYSIDO='SYSID='||XSYSID||' APPLID='||XAPPLID; EXEC CICS INQUIRE JOURNALNAME START RESP(XRESP); DO I=1 TO 12 UNTIL(XRESP=DFHRESP(END)); EXEC CICS INQUIRE JOURNALNAME(XJOURNALNAME) NEXT STATUS(XSTATUS) STREAMNAME(XSTREAMNAME) TYPE(XTYPE) RESP(XRESP); IF XRESP¬=DFHRESP(NORMAL) THEN LEAVE; SELECT(XSTATUS); WHEN (DFHVALUE(ENABLED)) CSTATUS='ENABLED'; WHEN (DFHVALUE(DISABLED)) CSTATUS='DISABLED';

Page 41: CICS Performance Toolkit

41© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

WHEN (DFHVALUE(FAILED)) CSTATUS='FAILED'; OTHERWISE CSTATUS=' ???'; END; SELECT(XTYPE); WHEN (DFHVALUE(MVS)) CTYPE='MVS'; WHEN (DFHVALUE(SMF)) CTYPE='SMF'; WHEN (DFHVALUE(DUMMY)) CTYPE='DUMMY'; OTHERWISE CTYPE=' ???'; END; LSNO(I)=(9)' '||XJOURNALNAME||(4)' '||XSTREAMNAME|| (2)' '||CTYPE||CSTATUS; /* SAVE THE STREAMNAME IN TAB */ TAB_IDX=TAB_IDX+1; TAB_STRNM(TAB_IDX)=XSTREAMNAME; END; /* SEND MAP */ EXEC CICS SEND MAP('IXGMAP1') MAPSET('IXGMAPS') FROM(IXGMAP1O) ERASE RESP(XRESP); RETURN_TO_CICS: EXEC CICS RETURN TRANSID(EIBTRNID) COMMAREA(XCOMMAREA_DATA) LENGTH(CSTG(XCOMMAREA_DATA)) RESP(XRESP); END IXGRPTC;

IXGSMF8

*PROCESS MACRO SYSTEM(CICS) LANGLVL(SPROG) XREF(FULL); IXGSMF8: PROC(COMPTR) OPTIONS(MAIN); /*******************************************************************/ /* READ SMF88 FILE AND DISPLAY SMF88 VARIABLES ON SCREEN */ /*******************************************************************/ %INCLUDE IXGMAPS; /* DSECT GENERATED BY BMS */ %INCLUDE SMF88STR; %INCLUDE (DFHAID); %INCLUDE (DFHBMSCA); DCL (COMPTR,P) PTR; DCL NULL_CA CHAR(1), ZERO FIXED BIN(15) INIT(Ø); DCL XLENGTH FIXED BIN(15); DCL XRESP FIXED BIN(31); DCL XABSTIME DEC FIXED(15); DCL XSYSID CHAR(4), XAPPLID CHAR(8); DCL LONG_FLOAT_BIN FLOAT BINARY(64) BASED; DCL WRK_BIN FIXED BIN(31); DCL WRK_PACKED FIXED DEC(15); DCL WRK_FLOAT FLOAT BIN(64); DCL SYSPRINT FILE; DCL (ADDR,CHAR,CSTG,STG,LOW,SUBSTR,STRING,LENGTH,FLOAT,BIN,MIN, UNSPEC,LBOUND,HBOUND) BUILTIN; DCL STR CHAR(32767) BASED; DCL I,J,K,C FIXED BIN(15); /* I,J,K FOR GENERAL PURPOSES, C=CURSOR */ DCL STRNM_SAVE CHAR(CSTG(STRNM));

Page 42: CICS Performance Toolkit

42 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

DCL 1 XCOMMAREA BASED(COMPTR), 2 EYECATCHER CHAR(8), 2 NEXT_FUNCTION CHAR(2Ø), 2 XKEY, 3 STRNM CHAR(26), 3 LSFLAGS CHAR(2), 3 TIMESTAMP CHAR(8), 2 MAXITEM FIXED BIN(15), 2 CURRITEM FIXED BIN(15), 2 TSQNAME CHAR(8), 2 ACCUM_TAB (2Ø), 3 ACCUMULATOR FLOAT BIN(64), 2 MAX_TAB (22), 3 MAXIMUM FLOAT BIN(64), 3 TSQITEM FIXED BIN(15); /* ------------------------------------------------------------- */ DCL SMF88SWB_FLOAT BINARY(64) FLOAT; /* BYT WRITTN TO INTERIM STOR.*/ DCL SMF88LDB_FLOAT BINARY(64) FLOAT; /* BYT WRITTN TO DASD */ DCL SMF88SIB_FLOAT BINARY(64) FLOAT; /* BYT DELETD INT.W/O DASD */ DCL SMF88SAB_FLOAT BINARY(64) FLOAT; /*BYT DELETD INTERIM ST W/DASD*/ DCL SMF88LWB_FLOAT BINARY(64) FLOAT; /* */ /* � CONSTANTS ------------------------------------------------- */ DCL CONST_ZERO_BIN15 FIXED BINARY (15) STATIC INIT(Ø); DCL CONST_SIGNIF_DIGITS FIXED BINARY (15) STATIC INIT(14); DCL CONST_MAX_EXP FIXED BINARY (15) STATIC INIT(16); DCL SPACE CHAR(1) STATIC INIT(' '); DCL SMF88LWI_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(1), SMF88LWB_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(2), SMF88SWB_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(3), SMF88LDB_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(4), SMF88SIB_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(5), SMF88SAB_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(6), SMF88SII_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(7), SMF88SAI_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(8), SMF88SC1_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(9), SMF88SC2_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(1Ø), SMF88SC3_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(11), SMF88EDS_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(12), SMF88ERI_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(13), SMF88ERC_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(14), SMF88ESF_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(15), SMF88ETT_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(16), SMF88ETF_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(17), SMF88EOA_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(18), SMF88EFS_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(19), SMF88EDO_ACCUM_TABIDX FIXED BIN(15) STATIC INIT(2Ø); DCL SMF88LWI_MAX_TABIDX FIXED BIN(15) STATIC INIT(1), SMF88LWB_MAX_TABIDX FIXED BIN(15) STATIC INIT(2), SMF88SWB_MAX_TABIDX FIXED BIN(15) STATIC INIT(3), SMF88LDB_MAX_TABIDX FIXED BIN(15) STATIC INIT(4),

Page 43: CICS Performance Toolkit

43© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

SMF88SIB_MAX_TABIDX FIXED BIN(15) STATIC INIT(5), SMF88SAB_MAX_TABIDX FIXED BIN(15) STATIC INIT(6), SMF88SII_MAX_TABIDX FIXED BIN(15) STATIC INIT(7), SMF88SAI_MAX_TABIDX FIXED BIN(15) STATIC INIT(8), SMF88SC1_MAX_TABIDX FIXED BIN(15) STATIC INIT(9), SMF88SC2_MAX_TABIDX FIXED BIN(15) STATIC INIT(1Ø), SMF88SC3_MAX_TABIDX FIXED BIN(15) STATIC INIT(11), SMF88EDS_MAX_TABIDX FIXED BIN(15) STATIC INIT(12), SMF88ERI_MAX_TABIDX FIXED BIN(15) STATIC INIT(13), SMF88ERC_MAX_TABIDX FIXED BIN(15) STATIC INIT(14), SMF88ESF_MAX_TABIDX FIXED BIN(15) STATIC INIT(15), SMF88ETT_MAX_TABIDX FIXED BIN(15) STATIC INIT(16), SMF88ETF_MAX_TABIDX FIXED BIN(15) STATIC INIT(17), SMF88EOA_MAX_TABIDX FIXED BIN(15) STATIC INIT(18), SMF88EFS_MAX_TABIDX FIXED BIN(15) STATIC INIT(19), SMF88EDO_MAX_TABIDX FIXED BIN(15) STATIC INIT(2Ø), SMF88LAB_MAX_TABIDX FIXED BIN(15) STATIC INIT(21), SMF88LIB_MIN_TABIDX FIXED BIN(15) STATIC INIT(22); %PAGE; /*******************************************************************/ /* MAIN TASK CONTROL */ SELECT(EIBAID); WHEN(DFHENTER); WHEN(DFHPF3) NEXT_FUNCTION = 'RETURN_TO_IXGC'; WHEN(DFHPF7) NEXT_FUNCTION = 'PROCESS_PREV_ITEM'; WHEN(DFHPF8) NEXT_FUNCTION = 'PROCESS_NEXT_ITEM'; WHEN(DFHPF9) NEXT_FUNCTION = 'PROCESS_FIRST_ITEM'; WHEN(DFHPF1Ø) NEXT_FUNCTION = 'PROCESS_MIDLE_ITEM'; WHEN(DFHPF11) NEXT_FUNCTION = 'PROCESS_LAST_ITEM'; WHEN(DFHPF13) NEXT_FUNCTION = 'DASD_SHFT_MAX'; WHEN(DFHPF14) NEXT_FUNCTION = 'OFFLOAD_MAX'; WHEN(DFHPF15) NEXT_FUNCTION = 'STG_FULL'; WHEN(DFHPF16) NEXT_FUNCTION = 'STG_THLD'; WHEN(DFHPF17) NEXT_FUNCTION = 'STR_FULL'; WHEN(DFHPF18) NEXT_FUNCTION = 'OFFL_9Ø%'; WHEN(DFHPF23) NEXT_FUNCTION = 'AVERAGE'; WHEN(DFHPF24) NEXT_FUNCTION = 'SUMMARY'; OTHERWISE NEXT_FUNCTION = 'INVALID_PFKEY'; END; SELECT(NEXT_FUNCTION); WHEN('FIRST_INVOCATION ') DO; CALL PROC_INIT; CALL PROC_READ_FILE; NEXT_FUNCTION = '???'; END; WHEN('PROCESS_FIRST_ITEM') DO; CURRITEM = 1; CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('PROCESS_MIDLE_ITEM') DO;

Page 44: CICS Performance Toolkit

44 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

CURRITEM = MAXITEM / 2; CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('PROCESS_LAST_ITEM') DO; CURRITEM = MAXITEM; CALL DISPLAY_SMF88_INTERVAL(MAXITEM); END; WHEN('RETURN_TO_IXGC ') DO; EXEC CICS DELETEQ TS QUEUE(TSQNAME) RESP(XRESP); EXEC CICS RETURN TRANSID('IXGC') IMMEDIATE COMMAREA(NULL_CA) LENGTH(ZERO) RESP(XRESP); END; WHEN('PROCESS_NEXT_ITEM') DO; IF CURRITEM = MAXITEM THEN CURRITEM = 1; ELSE IF CURRITEM < MAXITEM THEN CURRITEM = CURRITEM + 1; CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('PROCESS_PREV_ITEM') DO; IF CURRITEM = 1 THEN CURRITEM = MAXITEM; ELSE IF CURRITEM > 1 THEN CURRITEM = CURRITEM - 1; CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('DASD_SHFT_MAX') DO; CURRITEM=TSQITEM(SMF88EDS_MAX_TABIDX); CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('OFFLOAD_MAX') DO; CURRITEM=TSQITEM(SMF88EOA_MAX_TABIDX); CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('STG_FULL') DO; CURRITEM=TSQITEM(SMF88ETF_MAX_TABIDX); CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('STG_THLD') DO; CURRITEM=TSQITEM(SMF88ETT_MAX_TABIDX); CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('STR_FULL') DO; CURRITEM=TSQITEM(SMF88LDB_MAX_TABIDX); CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END;

Page 45: CICS Performance Toolkit

45© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

WHEN('OFFL_9Ø%') DO; CURRITEM=TSQITEM(SMF88EFS_MAX_TABIDX); CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END; WHEN('SUMMARY') CALL PROC_SUMM; WHEN('AVERAGE') CALL PROC_AVG; WHEN('INVALID_PFKEY') DO; CALL CLEAR_MAP; MSGO='*** INVALID PF KEY ***. PRESS ' || 'ONE OF THE PF KEYS DISPLAYED ' || 'BELOW|'; MSGH=DFHREVRS; CALL SEND_MAP; END; OTHERWISE; END; EXEC CICS RETURN TRANSID(EIBTRNID) COMMAREA(XCOMMAREA) LENGTH(CSTG(XCOMMAREA)) RESP(XRESP); %PAGE; /*******************************************************************/ /* READ THE REQUESTED SMF88 RECORDS INTO A TEMPORARY STORAGE AREA */ PROC_READ_FILE: PROC OPTIONS(REENTRANT) REORDER; STRNM_SAVE=STRNM; TSQNAME=EIBTRNID||EIBTRMID; MAXITEM=Ø; CURRITEM=Ø; EXEC CICS DELETEQ TS QUEUE(TSQNAME) RESP(XRESP); EXEC CICS STARTBR FILE('IXGSMF88') RIDFLD(XKEY) GTEQ RESP(XRESP); EXEC CICS READNEXT FILE('IXGSMF88') SET(P) LENGTH(XLENGTH) RIDFLD(XKEY) RESP(XRESP); DO WHILE(STRNM_SAVE=STRNM); IF XRESP¬=DFHRESP(NORMAL) THEN LEAVE; EXEC CICS WRITEQ TS QUEUE(TSQNAME) FROM(P->STR) LENGTH(XLENGTH) RESP(XRESP); MAXITEM=MAXITEM+1; CURRITEM=CURRITEM+1; /* MOVE TO REAL_RECORD AND ACCUMULATE THE VALUES */ SUBSTR(REAL_RECORD,1,XLENGTH) = SUBSTR(P->STR,1,XLENGTH); CALL PROC_ACCUMULATE_AND_MAX; /* READ NEXT */ EXEC CICS READNEXT FILE('IXGSMF88') SET(P) LENGTH(XLENGTH) RIDFLD(XKEY) RESP(XRESP); END; EXEC CICS ENDBR FILE('IXGSMF88') RESP(XRESP); CALL DISPLAY_SMF88_INTERVAL(CURRITEM); END PROC_READ_FILE; %PAGE; /*******************************************************************/ /* DISPLAY THE SMF88 INTERVAL ON CRT */

Page 46: CICS Performance Toolkit

46 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

DISPLAY_SMF88_INTERVAL: PROC (INTV) OPTIONS(REENTRANT) REORDER; DCL INTV FIXED BIN(15); CALL CLEAR_MAP; IF MAXITEM=Ø THEN DO; DO I=CSTG(STRNM) BY -1 TO 1; IF SUBSTR(STRNM_SAVE,I,1)¬=SPACE THEN LEAVE; END; MSGO=' *** NO DATA FOUND FOR LOGSTREAM "' || SUBSTR(STRNM_SAVE,1,I) || '" ON VSAM FILE. USE IXGRPTB TO COPY SMF88 DATA. ***'; MSGH=DFHREVRS; GOTO EXIT_DISPLAY_SMF88_INTERVAL; END; IF MAXITEM>Ø & MAXITEM=CURRITEM THEN DO; MSGO='NOTE: THIS IS THE MOST RECENT SMF INTERVAL. ' || 'YOU''LL SEE THE SMF INTERVAL COUNTER IN THE '|| 'UPPER-RIGHT CORNER. (CURRENT / MAXIMUM) '; MSGC=DFHPINK; END; EXEC CICS READQ TS QUEUE(TSQNAME) INTO(REAL_RECORD) ITEM(INTV) RESP(XRESP); MCURINTVO = INTV; MMAXINTVO = MAXITEM; /* ************************************************ */ /* PRODUCT SECTION */ SMF88SYNO = SMF88SYN; /* MVS OPERATION SYSTEM NAME */ SMF88OSLO = SMF88OSL; /* MVS RELEASE */ /* ************************************************ */ /* LOGSTREAM SECTION */ SMF88LSNO = SMF88LSN; /* LOG STREAM NAME */ SMF88LWIO = FLOAT(UNSPEC(SMF88LWI),32); /* #WRITES INVOKED */ SMF88LTDO = SUBSTR(SMF88PNM,1,4) || '/' || /* YYYY */ SUBSTR(SMF88PNM,5,2) || '/' || /* MM */ SUBSTR(SMF88PNM,7,2) || SPACE || /* DD */ SUBSTR(SMF88LIT,1,2) || ':' || /* HH */ SUBSTR(SMF88LIT,3,2) || ':' || /* MM */ SUBSTR(SMF88LIT,5,2); /* SS */ SMF88LIBO = FLOAT(UNSPEC(SMF88LIB),32); /* MIN.BLOCKLEN */ SMF88LABO = FLOAT(UNSPEC(SMF88LAB),32); /* MAX.BLOCKLEN */ /* ������ BYT WRITTN BY USERS IXGWRITES ������� */ SMF88LWB_FLOAT = FLOAT(Ø); CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88LWB),ADDR(SMF88LWB_FLOAT)); SMF88LWBO = SMF88LWB_FLOAT; /* ************************************************ */ /* STRUCTURE (INTERIM STORAGE) SECTION */ SMF88STNO = SMF88STN; /* STRUCTURE NAME */ /* ������ BYT WRITTN TO INTERIM STORAGE ������� */ SMF88SWB_FLOAT = Ø;

Page 47: CICS Performance Toolkit

47© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88SWB),ADDR(SMF88SWB_FLOAT)); SMF88SWBO = SMF88SWB_FLOAT; /* ������ BYT WRITTN TO DASD ������������ */ SMF88LDB_FLOAT = Ø; CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88LDB),ADDR(SMF88LDB_FLOAT)); SMF88LDBO = SMF88LDB_FLOAT; /* ������ BYT DELETD INTERIM ST W/O DASD ������ */ SMF88SIB_FLOAT = Ø; CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88SIB),ADDR(SMF88SIB_FLOAT)); SMF88SIBO = SMF88SIB_FLOAT; /* ������ BYT DELETD INTERIM ST W/DASD ������� */ SMF88SAB_FLOAT = Ø; CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88SAB),ADDR(SMF88SAB_FLOAT)); SMF88SABO = SMF88SAB_FLOAT; SMF88SIIO = FLOAT(UNSPEC(SMF88SII),32); /* # DELETES W/O DASD WRITE*/ SMF88SAIO = FLOAT(UNSPEC(SMF88SAI),32); /* # DELETS W/WRITE */ SMF88SC1O = FLOAT(UNSPEC(SMF88SC1),32); /* # WRITES COMPLETED TYPE1*/ SMF88SC2O = FLOAT(UNSPEC(SMF88SC2),32); /* # WRITES COMPLETED TYPE2*/ SMF88SC3O = FLOAT(UNSPEC(SMF88SC3),32); /* # WRITES COMPLETED TYPE3*/ /* ************************************************ */ /* EVENTS SECTION */ SMF88EDSO = FLOAT(UNSPEC(SMF88EDS),32); /* DASD SHFT */ SMF88ERIO = FLOAT(UNSPEC(SMF88ERI),32); /* REBLD INI */ SMF88ERCO = FLOAT(UNSPEC(SMF88ERC),32); /* REBLD CMP */ SMF88ESFO = FLOAT(UNSPEC(SMF88ESF),32); /* STRC FULL */ SMF88ETTO = FLOAT(UNSPEC(SMF88ETT),32); /* STG THLD */ SMF88ETFO = FLOAT(UNSPEC(SMF88ETF),32); /* STG FULL */ SMF88EOAO = FLOAT(UNSPEC(SMF88EO ),32); /* OFFLOADS */ SMF88EFSO = FLOAT(UNSPEC(SMF88EFS),32); /* OFFL.9Ø% */ SMF88EDOO = FLOAT(UNSPEC(SMF88EDO),32); /* IXGOFFLD */ SELECT(NEXT_FUNCTION); /* SET MAP ATTRIBUTE TO REVERSE VIDEO */ WHEN('PROCESS_PREV_ITEM') PF7H=DFHREVRS; WHEN('PROCESS_NEXT_ITEM') PF8H=DFHREVRS; WHEN('PROCESS_FIRST_ITEM') PF9H=DFHREVRS; WHEN('PROCESS_MIDLE_ITEM') PF1ØH=DFHREVRS; WHEN('PROCESS_LAST_ITEM') PF11H=DFHREVRS; WHEN('DASD_SHFT_MAX') DO; SMF88EDSH=DFHREVRS; PF13H=DFHREVRS; END; WHEN('OFFLOAD_MAX') DO; SMF88EOAH=DFHREVRS; PF14H=DFHREVRS; END; WHEN('STG_FULL') DO; SMF88ETFH=DFHREVRS; PF15H=DFHREVRS; END; WHEN('STG_THLD') DO; SMF88ETTH=DFHREVRS; PF16H=DFHREVRS; END; WHEN('STR_FULL') DO; SMF88ESFH=DFHREVRS; PF17H=DFHREVRS; END; WHEN('OFFL_9Ø%') DO; SMF88EFSH=DFHREVRS; PF18H=DFHREVRS; END; OTHERWISE; END; EXIT_DISPLAY_SMF88_INTERVAL: CALL SEND_MAP; RETURN; END DISPLAY_SMF88_INTERVAL; %PAGE; PROC_ACCUMULATE_AND_MAX: PROC OPTIONS(REENTRANT) REORDER;

Page 48: CICS Performance Toolkit

48 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

/* SMF88LWI */ ACCUMULATOR(SMF88LWI_ACCUM_TABIDX) = ACCUMULATOR(SMF88LWI_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88LWI),32); IF MAXIMUM(SMF88LWI_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88LWI),32) THEN DO; MAXIMUM(SMF88LWI_MAX_TABIDX) = FLOAT(UNSPEC(SMF88LWI),32); TSQITEM(SMF88LWI_MAX_TABIDX) = CURRITEM; END; /* SMF88LIB (EXCEPTION: NOT MAX BUT MIN) */ IF MAXIMUM(SMF88LIB_MIN_TABIDX) >= FLOAT(UNSPEC(SMF88LIB),32) THEN DO; MAXIMUM(SMF88LIB_MIN_TABIDX) = FLOAT(UNSPEC(SMF88LIB),32); TSQITEM(SMF88LIB_MIN_TABIDX) = CURRITEM; END; /* SMF88LAB */ IF MAXIMUM(SMF88LAB_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88LAB),32) THEN DO; MAXIMUM(SMF88LAB_MAX_TABIDX) = FLOAT(UNSPEC(SMF88LAB),32); TSQITEM(SMF88LAB_MAX_TABIDX) = CURRITEM; END; /* SMF88LWB */ CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88LWB), ADDR(ACCUMULATOR(SMF88LWB_ACCUM_TABIDX))); IF MAXIMUM(SMF88LWB_MAX_TABIDX) <= WRK_FLOAT THEN DO; MAXIMUM(SMF88LWB_MAX_TABIDX) = WRK_FLOAT; TSQITEM(SMF88LWB_MAX_TABIDX) = CURRITEM; END; /* SMF88SWB */ CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88SWB), ADDR(ACCUMULATOR(SMF88SWB_ACCUM_TABIDX))); IF MAXIMUM(SMF88SWB_MAX_TABIDX) <= WRK_FLOAT THEN DO; MAXIMUM(SMF88SWB_MAX_TABIDX) = WRK_FLOAT; TSQITEM(SMF88SWB_MAX_TABIDX) = CURRITEM; END; /* SMF88LDB */ CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88LDB), ADDR(ACCUMULATOR(SMF88LDB_ACCUM_TABIDX))); IF MAXIMUM(SMF88LDB_MAX_TABIDX) <= WRK_FLOAT THEN DO; MAXIMUM(SMF88LDB_MAX_TABIDX) = WRK_FLOAT; TSQITEM(SMF88LDB_MAX_TABIDX) = CURRITEM; END; /* SMF88SIB */ CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88SIB), ADDR(ACCUMULATOR(SMF88SIB_ACCUM_TABIDX))); IF MAXIMUM(SMF88SIB_MAX_TABIDX) <= WRK_FLOAT THEN DO; MAXIMUM(SMF88SIB_MAX_TABIDX) = WRK_FLOAT;

Page 49: CICS Performance Toolkit

49© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

TSQITEM(SMF88SIB_MAX_TABIDX) = CURRITEM; END; /* SMF88SAB */ CALL CONVERT_TO_FLOAT_AND_SUM(ADDR(SMF88SAB), ADDR(ACCUMULATOR(SMF88SAB_ACCUM_TABIDX))); IF MAXIMUM(SMF88SAB_MAX_TABIDX) <= WRK_FLOAT THEN DO; MAXIMUM(SMF88SAB_MAX_TABIDX) = WRK_FLOAT; TSQITEM(SMF88SAB_MAX_TABIDX) = CURRITEM; END; /* SMF88SII */ ACCUMULATOR(SMF88SII_ACCUM_TABIDX) = ACCUMULATOR(SMF88SII_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88SII),32); IF MAXIMUM(SMF88SII_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88SII),32) THEN DO; MAXIMUM(SMF88SII_MAX_TABIDX) = FLOAT(UNSPEC(SMF88SII),32); TSQITEM(SMF88SII_MAX_TABIDX) = CURRITEM; END; /* SMF88SAI */ ACCUMULATOR(SMF88SAI_ACCUM_TABIDX) = ACCUMULATOR(SMF88SAI_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88SAI),32); IF MAXIMUM(SMF88SAI_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88SAI),32) THEN DO; MAXIMUM(SMF88SAI_MAX_TABIDX) = FLOAT(UNSPEC(SMF88SAI),32); TSQITEM(SMF88SAI_MAX_TABIDX) = CURRITEM; END; /* SMF88SC1 */ ACCUMULATOR(SMF88SC1_ACCUM_TABIDX) = ACCUMULATOR(SMF88SC1_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88SC1),32); IF MAXIMUM(SMF88SC1_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88SC1),32) THEN DO; MAXIMUM(SMF88SC1_MAX_TABIDX) = FLOAT(UNSPEC(SMF88SC1),32); TSQITEM(SMF88SC1_MAX_TABIDX) = CURRITEM; END; /* SMF88SC2 */ ACCUMULATOR(SMF88SC2_ACCUM_TABIDX) = ACCUMULATOR(SMF88SC2_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88SC2),32); IF MAXIMUM(SMF88SC2_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88SC2),32) THEN DO; MAXIMUM(SMF88SC2_MAX_TABIDX) = FLOAT(UNSPEC(SMF88SC2),32); TSQITEM(SMF88SC2_MAX_TABIDX) = CURRITEM; END; /* SMF88SC3 */ ACCUMULATOR(SMF88SC3_ACCUM_TABIDX) = ACCUMULATOR(SMF88SC3_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88SC3),32); IF MAXIMUM(SMF88SC3_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88SC3),32) THEN DO; MAXIMUM(SMF88SC3_MAX_TABIDX) = FLOAT(UNSPEC(SMF88SC3),32); TSQITEM(SMF88SC3_MAX_TABIDX) = CURRITEM; END;

Page 50: CICS Performance Toolkit

50 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

/* SMF88EDS */ ACCUMULATOR(SMF88EDS_ACCUM_TABIDX) = ACCUMULATOR(SMF88EDS_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88EDS),32); IF MAXIMUM(SMF88EDS_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88EDS),32) THEN DO; MAXIMUM(SMF88EDS_MAX_TABIDX) = FLOAT(UNSPEC(SMF88EDS),32); TSQITEM(SMF88EDS_MAX_TABIDX) = CURRITEM; END; /* SMF88ERI */ ACCUMULATOR(SMF88ERI_ACCUM_TABIDX) = ACCUMULATOR(SMF88ERI_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88ERI),32); IF MAXIMUM(SMF88ERI_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88ERI),32) THEN DO; MAXIMUM(SMF88ERI_MAX_TABIDX) = FLOAT(UNSPEC(SMF88ERI),32); TSQITEM(SMF88ERI_MAX_TABIDX) = CURRITEM; END; /* SMF88ERC */ ACCUMULATOR(SMF88ERC_ACCUM_TABIDX) = ACCUMULATOR(SMF88ERC_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88ERC),32); IF MAXIMUM(SMF88ERC_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88ERC),32) THEN DO; MAXIMUM(SMF88ERC_MAX_TABIDX) = FLOAT(UNSPEC(SMF88ERC),32); TSQITEM(SMF88ERC_MAX_TABIDX) = CURRITEM; END; /* SMF88ESF */ ACCUMULATOR(SMF88ESF_ACCUM_TABIDX) = ACCUMULATOR(SMF88ESF_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88ESF),32); IF MAXIMUM(SMF88ESF_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88ESF),32) THEN DO; MAXIMUM(SMF88ESF_MAX_TABIDX) = FLOAT(UNSPEC(SMF88ESF),32); TSQITEM(SMF88ESF_MAX_TABIDX) = CURRITEM; END; /* SMF88ETT */ ACCUMULATOR(SMF88ETT_ACCUM_TABIDX) = ACCUMULATOR(SMF88ETT_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88ETT),32); IF MAXIMUM(SMF88ETT_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88ETT),32) THEN DO; MAXIMUM(SMF88ETT_MAX_TABIDX) = FLOAT(UNSPEC(SMF88ETT),32); TSQITEM(SMF88ETT_MAX_TABIDX) = CURRITEM; END; /* SMF88ETF */ ACCUMULATOR(SMF88ETF_ACCUM_TABIDX) = ACCUMULATOR(SMF88ETF_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88ETF),32); IF MAXIMUM(SMF88ETF_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88ETF),32) THEN DO; MAXIMUM(SMF88ETF_MAX_TABIDX) = FLOAT(UNSPEC(SMF88ETF),32); TSQITEM(SMF88ETF_MAX_TABIDX) = CURRITEM; END; /* SMF88EOA */ ACCUMULATOR(SMF88EOA_ACCUM_TABIDX) =

Page 51: CICS Performance Toolkit

51© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

ACCUMULATOR(SMF88EOA_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88EO),32); IF MAXIMUM(SMF88EOA_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88EO),32) THEN DO; MAXIMUM(SMF88EOA_MAX_TABIDX) = FLOAT(UNSPEC(SMF88EO),32); TSQITEM(SMF88EOA_MAX_TABIDX) = CURRITEM; END; /* SMF88EFS */ ACCUMULATOR(SMF88EFS_ACCUM_TABIDX) = ACCUMULATOR(SMF88EFS_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88EFS),32); IF MAXIMUM(SMF88EFS_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88EFS),32) THEN DO; MAXIMUM(SMF88EFS_MAX_TABIDX) = FLOAT(UNSPEC(SMF88EFS),32); TSQITEM(SMF88EFS_MAX_TABIDX) = CURRITEM; END; /* SMF88EDO */ ACCUMULATOR(SMF88EDO_ACCUM_TABIDX) = ACCUMULATOR(SMF88EDO_ACCUM_TABIDX) + FLOAT(UNSPEC(SMF88EDO),32); IF MAXIMUM(SMF88EDO_MAX_TABIDX) <= FLOAT(UNSPEC(SMF88EDO),32) THEN DO; MAXIMUM(SMF88EDO_MAX_TABIDX) = FLOAT(UNSPEC(SMF88EDO),32); TSQITEM(SMF88EDO_MAX_TABIDX) = CURRITEM; END; END PROC_ACCUMULATE_AND_MAX; %PAGE; PROC_INIT: PROC; DO I = 1 TO 2Ø; ACCUMULATOR(I) = FLOAT(Ø); END; DO I = 1 TO 22; MAXIMUM(I) = FLOAT(Ø); TSQITEM(I) = 1; END; END PROC_INIT; %PAGE; CONVERT_TO_FLOAT_AND_SUM : PROC (SOURCE_STRING_PTR, FLOAT_ACCUM_PTR); DECLARE SOURCE_STRING_PTR POINTER, SOURCE_STRING BIT(64) BASED(SOURCE_STRING_PTR), /* INPUT: FORMAT IS ASM LONG FLOATING POINT*/ FIRST_BYTE BIT(8) BASED(SOURCE_STRING_PTR), /* EXPONENT OF ASM LONG FLOATING POINT */ TARGET_STRING BIT(64), /* TEMP 64 BIT WORKAREA*/ FLOAT_ACCUM_PTR POINTER, FLOAT_ACCUM BINARY(64) FLOAT BASED(FLOAT_ACCUM_PTR); /* OUTPUT: PL/I FORMAT 64-BIT FLOAT */ DECLARE CHARACTERISTIC BINARY(15), DIGITS_TO_MOVE BINARY(15), NUM_BITS_TO_MOVE BINARY(15),

Page 52: CICS Performance Toolkit

52 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

SOURCE_START_SUBSCRIPT BINARY(15), TARGET_START_SUBSCRIPT BINARY(15); CHARACTERISTIC = BIN (FIRST_BYTE); IF (CHARACTERISTIC = CONST_ZERO_BIN15) THEN DO; /* INPUT FIELD IS Ø, NOTHING TO SUM */ END; ELSE DO; /* INPUT FIELD IS NON-ZERO */ CHARACTERISTIC = CHARACTERISTIC - 64; /* REMOVE EXCESS-64*/ DO; /* CONVERT FLOATING POINT SOURCE TO BIT STRING */ TARGET_STRING = ''B; /* CLEAR TARGET */ SOURCE_START_SUBSCRIPT = LENGTH (FIRST_BYTE) + 1; DIGITS_TO_MOVE = MIN (CHARACTERISTIC, CONST_SIGNIF_DIGITS); NUM_BITS_TO_MOVE = (DIGITS_TO_MOVE)*4; TARGET_START_SUBSCRIPT = ( (CONST_MAX_EXP - CHARACTERISTIC) * 4) + 1; SUBSTR (TARGET_STRING, TARGET_START_SUBSCRIPT,NUM_BITS_TO_MOVE) = SUBSTR (SOURCE_STRING, SOURCE_START_SUBSCRIPT,NUM_BITS_TO_MOVE); FLOAT_ACCUM = FLOAT_ACCUM + FLOAT(TARGET_STRING,64); END; /* CONVERT FLOATING POINT SOURCE TO BIT STRING */ END; /* INPUT IS NON-ZERO */ END CONVERT_TO_FLOAT_AND_SUM; %PAGE; PROC_SUMM: PROC OPTIONS(REENTRANT) REORDER; /* CLEAR MAP */ SUBSTR(ADDR(IXGMAP8O)->STR,1,STG(IXGMAP8O))=LOW(STG(IXGMAP8O)); EXEC CICS READQ TS QUEUE(TSQNAME) INTO(REAL_RECORD) ITEM(MAXITEM) RESP(XRESP); MCURINTVO = MAXITEM; MMAXINTVO = MAXITEM; /* ************************************************ */ /* PRODUCT SECTION */ SMF88SYNO = SMF88SYN; /* MVS OPERATION SYSTEM NAME */ SMF88OSLO = SMF88OSL; /* MVS RELEASE */ /* ************************************************ */ /* LOGSTREAM SECTION */ SMF88LSNO = SMF88LSN; /* LOG STREAM NAME */ SMF88LWIO = ACCUMULATOR(SMF88LWI_ACCUM_TABIDX); SMF88LTDO = SUBSTR(SMF88PNM,1,4) || '/' || /* YYYY */ SUBSTR(SMF88PNM,5,2) || '/' || /* MM */ SUBSTR(SMF88PNM,7,2) || SPACE || /* DD */ SUBSTR(SMF88LIT,1,2) || ':' || /* HH */ SUBSTR(SMF88LIT,3,2) || ':' || /* MM */ SUBSTR(SMF88LIT,5,2); /* SS */

Page 53: CICS Performance Toolkit

53© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

SMF88LIBO = FLOAT(UNSPEC(SMF88LIB),32); /* MIN.BLOCKLEN */ SMF88LABO = FLOAT(UNSPEC(SMF88LAB),32); /* MAX.BLOCKLEN */ SMF88LWBO = ACCUMULATOR(SMF88LWB_ACCUM_TABIDX); /* BYT WRITTN SUM */ SMF88STNO = SMF88STN; /* STRUCTURE NAME */ SMF88SWBO = ACCUMULATOR(SMF88SWB_ACCUM_TABIDX); /* BYT WRITTN INT. */ SMF88LDBO = ACCUMULATOR(SMF88LDB_ACCUM_TABIDX); /* BYT WRITTN DASD */ SMF88SIBO = ACCUMULATOR(SMF88SIB_ACCUM_TABIDX); /* BYT DEL W/O DASD*/ SMF88SABO = ACCUMULATOR(SMF88SAB_ACCUM_TABIDX); /* BYT DEL W/DASD */ SMF88SIIO = ACCUMULATOR(SMF88SII_ACCUM_TABIDX); /* #DEL W/O DASD */ SMF88SAIO = ACCUMULATOR(SMF88SAI_ACCUM_TABIDX); /* #DEL W/WRITE */ SMF88SC1O = ACCUMULATOR(SMF88SC1_ACCUM_TABIDX); /* #WRITES TYPE 1 */ SMF88SC2O = ACCUMULATOR(SMF88SC2_ACCUM_TABIDX); /* #WRITES TYPE 2 */ SMF88SC3O = ACCUMULATOR(SMF88SC3_ACCUM_TABIDX); /* #WRITES TYPE 3 */ SMF88EDSO = ACCUMULATOR(SMF88EDS_ACCUM_TABIDX); /* DASD SHRT */ SMF88ERIO = ACCUMULATOR(SMF88ERI_ACCUM_TABIDX); /* REBLD INIT. */ SMF88ERCO = ACCUMULATOR(SMF88ERC_ACCUM_TABIDX); /* REBLD CMP. */ SMF88ESFO = ACCUMULATOR(SMF88ESF_ACCUM_TABIDX); /* STRC FULL */ SMF88ETTO = ACCUMULATOR(SMF88ETT_ACCUM_TABIDX); /* STG THLD */ SMF88ETFO = ACCUMULATOR(SMF88ETF_ACCUM_TABIDX); /* STG FULL */ SMF88EOAO = ACCUMULATOR(SMF88EOA_ACCUM_TABIDX); /* OFFLOADS */ SMF88EFSO = ACCUMULATOR(SMF88EFS_ACCUM_TABIDX); /* OFFL.9Ø% */ SMF88EDOO = ACCUMULATOR(SMF88EDO_ACCUM_TABIDX); /* IXGOFFLD */ PF24H = DFHREVRS; CALL SEND_MAP; RETURN; END PROC_SUMM; %PAGE; PROC_AVG: PROC OPTIONS(REENTRANT) REORDER; /* CLEAR MAP */ SUBSTR(ADDR(IXGMAP8O)->STR,1,STG(IXGMAP8O))=LOW(STG(IXGMAP8O)); EXEC CICS READQ TS QUEUE(TSQNAME) INTO(REAL_RECORD) ITEM(MAXITEM) RESP(XRESP); MCURINTVO = MAXITEM; MMAXINTVO = MAXITEM; /* ************************************************ */ /* PRODUCT SECTION */ SMF88SYNO = SMF88SYN; /* MVS OPERATION SYSTEM NAME */ SMF88OSLO = SMF88OSL; /* MVS RELEASE */ /* ************************************************ */ /* LOGSTREAM SECTION */ SMF88LSNO = SMF88LSN; /* LOG STREAM NAME */ SMF88LWIO = ACCUMULATOR(SMF88LWI_ACCUM_TABIDX) / MAXITEM; SMF88LTDO = SUBSTR(SMF88PNM,1,4) || '/' || /* YYYY */ SUBSTR(SMF88PNM,5,2) || '/' || /* MM */ SUBSTR(SMF88PNM,7,2) || SPACE || /* DD */ SUBSTR(SMF88LIT,1,2) || ':' || /* HH */ SUBSTR(SMF88LIT,3,2) || ':' || /* MM */ SUBSTR(SMF88LIT,5,2); /* SS */ SMF88LIBO = FLOAT(UNSPEC(SMF88LIB),32); /* MIN.BLOCKLEN */ SMF88LABO = FLOAT(UNSPEC(SMF88LAB),32); /* MAX.BLOCKLEN */

Page 54: CICS Performance Toolkit

54 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

SMF88LWBO = ACCUMULATOR(SMF88LWB_ACCUM_TABIDX) / MAXITEM; SMF88STNO = SMF88STN; SMF88SWBO = ACCUMULATOR(SMF88SWB_ACCUM_TABIDX) / MAXITEM; SMF88LDBO = ACCUMULATOR(SMF88LDB_ACCUM_TABIDX) / MAXITEM; SMF88SIBO = ACCUMULATOR(SMF88SIB_ACCUM_TABIDX) / MAXITEM; SMF88SABO = ACCUMULATOR(SMF88SAB_ACCUM_TABIDX) / MAXITEM; SMF88SIIO = ACCUMULATOR(SMF88SII_ACCUM_TABIDX) / MAXITEM; SMF88SAIO = ACCUMULATOR(SMF88SAI_ACCUM_TABIDX) / MAXITEM; SMF88SC1O = ACCUMULATOR(SMF88SC1_ACCUM_TABIDX) / MAXITEM; SMF88SC2O = ACCUMULATOR(SMF88SC2_ACCUM_TABIDX) / MAXITEM; SMF88SC3O = ACCUMULATOR(SMF88SC3_ACCUM_TABIDX) / MAXITEM; SMF88EDSO = ACCUMULATOR(SMF88EDS_ACCUM_TABIDX) / MAXITEM; SMF88ERIO = ACCUMULATOR(SMF88ERI_ACCUM_TABIDX) / MAXITEM; SMF88ERCO = ACCUMULATOR(SMF88ERC_ACCUM_TABIDX) / MAXITEM; SMF88ESFO = ACCUMULATOR(SMF88ESF_ACCUM_TABIDX) / MAXITEM; SMF88ETTO = ACCUMULATOR(SMF88ETT_ACCUM_TABIDX) / MAXITEM; SMF88ETFO = ACCUMULATOR(SMF88ETF_ACCUM_TABIDX) / MAXITEM; SMF88EOAO = ACCUMULATOR(SMF88EOA_ACCUM_TABIDX) / MAXITEM; SMF88EFSO = ACCUMULATOR(SMF88EFS_ACCUM_TABIDX) / MAXITEM; SMF88EDOO = ACCUMULATOR(SMF88EDO_ACCUM_TABIDX) / MAXITEM; PF23H = DFHREVRS; CALL SEND_MAP; RETURN; END PROC_AVG; %PAGE; CLEAR_MAP: PROC; SUBSTR(ADDR(IXGMAP8O)->STR,1,STG(IXGMAP8O))=LOW(STG(IXGMAP8O)); RETURN; END CLEAR_MAP; %PAGE; SEND_MAP: PROC; EXEC CICS SEND MAP('IXGMAP8') MAPSET('IXGMAPS') FROM(IXGMAP8O) ALTERNATE ERASE RESP(XRESP); RETURN; END SEND_MAP; END IXGSMF8;

COPYBOOK SMF88STR

You will find a detailed description of system logger data record type 88(X'58') mapping in MVS System Management Facilities (GC28-1783-09) on pages 13-477 – 13-482.

DECLARE RECORD AREA (32756); DECLARE 1 SMFREC BASED(ADDR(RECORD)), 2 RESERVED CHAR (4),

Page 55: CICS Performance Toolkit

55© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

2 REAL_RECORD CHAR (32752); DCL 1 SMFRCD88 BASED(ADDR(RECORD)), 2 RSVD1 CHAR(4), 2 SMF88FLG BIT (8), 2 SMF88RTY BIT (8), 2 SMF88TME CHAR(4), 2 SMF88DTE FIXED DECIMAL (7), 2 SMF88SID CHAR(4), 2 SMF88WID CHAR(4), 2 SMF88STP FIXED BINARY (15), 2 SMF88SDS, 3 SMF88SDL FIXED BINARY (31), 3 SMF88POF OFFSET (RECORD), 3 SMF88PLN FIXED BINARY (15), 3 SMF88PON FIXED BINARY (15), 3 SMF88LOF OFFSET (RECORD), 3 SMF88LLN FIXED BINARY (15), 3 SMF88LON FIXED BINARY (15), 3 SMF88EOF OFFSET (RECORD), 3 SMF88ELN FIXED BINARY (15), 3 SMF88EON FIXED BINARY (15), 3 SMF88SOF OFFSET (RECORD), 3 SMF88SLN FIXED BINARY (15), 3 SMF88SON FIXED BINARY (15); DCL 1 SMF88PSD BASED(SMF88POF), 3 SMF88TYP FIXED BINARY (15), 3 SMF88RVN CHAR(2), 3 SMF88PNM CHAR(8), 3 SMF88OSL CHAR(8), 3 SMF88SYN CHAR(8); DCL 1 SMF88LSD BASED(SMF88LOF), 3 SMF88LIT CHAR(8), 3 SMF88LSN CHAR(26), 3 SMF88LFL, 5 RSVD2 BIT(1), 5 SMF88LFT BIT(1), 5 RSVD3 BIT(14), 3 SMF88LTD CHAR(8), 3 SMF88LWI CHAR(4), 3 SMF88LIB CHAR(4), 3 SMF88LAB CHAR(4), 3 SMF88LWB CHAR(8), 3 SMF88LDB CHAR(8); DCL 1 SMF88ESD BASED(SMF88EOF), 3 SMF88EDS CHAR(4), 3 SMF88ERI CHAR(4), 3 SMF88ERC CHAR(4), 3 SMF88ESF CHAR(4), 3 SMF88ETT CHAR(4), 3 SMF88ETF CHAR(4),

Page 56: CICS Performance Toolkit

56 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

3 SMF88EO CHAR(4), 3 SMF88EFS CHAR(4), 3 SMF88EDO CHAR(4); DCL 1 SMF88SSD BASED(SMF88SOF), 3 SMF88STN CHAR(16), 3 SMF88SWB CHAR(8), 3 SMF88SIB CHAR(8), 3 SMF88SAB CHAR(8), 3 RSVD4, 3 SMF88SII BIT(32), 3 SMF88SAI BIT(32), 3 SMF88SC1 BIT(32), 3 SMF88SC2 BIT(32), 3 SMF88SC3 BIT(32), 3 RSVD5 CHAR(4);

MAPSET IXGMAPS

IXGMAPS DFHMSD TYPE=DSECT,MODE=OUT,CTRL=FREEKB,LANG=PLI, * MAPATTS=(COLOR,HILIGHT), * DSATTS=(COLOR,HILIGHT),STORAGE=AUTO*********************************************************************** LOCAL LOG STREAMS ON CRT ***********************************************************************IXGMAP1 DFHMDI SIZE=(24,8Ø) DFHMDF POS=(Ø2,18),LENGTH=4Ø,COLOR=BLUE, * INITIAL='SYSTEM LOGGER ACTIVITY REPORT (IXGRPTC)' DFHMDF POS=(Ø5,1Ø),LENGTH=65,COLOR=BLUE, * INITIAL='JOURNALNAME STREAMNAME TYPE * STATUS ' DFHMDF POS=(Ø6,1Ø),LENGTH=65,COLOR=BLUE, * INITIAL='----------------------------------------------* ---------'LSN DFHMDF POS=(Ø7,Ø1),LENGTH=79,OCCURS=12,COLOR=GREEN DFHMDF POS=(2Ø,Ø1),LENGTH=79,COLOR=NEUTRAL,INITIAL='NOTE: PUT* THE CURSOR ON A STREAMNAME AND PRESS ENTER KEY'SYSID DFHMDF POS=(22,54),LENGTH=26,COLOR=TURQUOISE* DFHMDF POS=(24,Ø1),LENGTH=2,COLOR=GREEN,INITIAL='PF' DFHMDF POS=(24,Ø4),LENGTH=1,COLOR=TURQUOISE,INITIAL='3' DFHMDF POS=(24,Ø6),LENGTH=4,COLOR=GREEN,INITIAL='END '*********************************************************************** ERROR MESSAGES ***********************************************************************INVCURS DFHMDI SIZE=(24,8Ø) DFHMDF POS=(21,Ø1),LENGTH=4Ø,COLOR=RED, * INITIAL='*** CURSOR NOT ON A VALID STREAMNAME ***'INVKEY DFHMDI SIZE=(24,8Ø) DFHMDF POS=(21,Ø1),LENGTH=42,COLOR=RED, *

Page 57: CICS Performance Toolkit

57© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

INITIAL='*** INVALID PF KEY. PRESS PF3 OR ENTER ***'INVSCRN DFHMDI SIZE=(24,8Ø) DFHMDF POS=(21,Ø1),LENGTH=5Ø,COLOR=RED, * INITIAL='*** INVALID SCREEN SIZE. 27X132 MANDATORY ***'*********************************************************************** SMF88 RECORD ON CRT ***********************************************************************IXGMAP8 DFHMDI SIZE=(27,132)* --------------------- LINE 1 --------------------------------* DFHMDF POS=(Ø1,4Ø),LENGTH=4Ø,COLOR=BLUE, * INITIAL='SYSTEM LOGGER ACTIVITY REPORT (IXGRPTC)'* --------------------- LINE 2 --------------------------------** --------------------- LINE 3 --------------------------------* DFHMDF POS=(Ø3,1ØØ),LENGTH=13,COLOR=BLUE, * INITIAL='SMF INTERVAL:'MCURINTV DFHMDF POS=(Ø3,115),LENGTH=Ø5,COLOR=GREEN,PICOUT='ZZZZ9' DFHMDF POS=(Ø3,121),LENGTH=Ø1,COLOR=GREEN,INITIAL='/'MMAXINTV DFHMDF POS=(Ø3,123),LENGTH=Ø5,COLOR=GREEN,PICOUT='ZZZZ9'* --------------------- LINE 4 --------------------------------* DFHMDF POS=(Ø4,Ø1),LENGTH=13Ø,COLOR=TURQUOISE, * INITIAL='-------------- PRODUCT SECTION ---------------* --------------------------------------------------------* ---------------------------'* --------------------- LINE 5 --------------------------------* DFHMDF POS=(Ø5,Ø1),LENGTH=26,COLOR=BLUE, * INITIAL='MVS OPERATION SYSTEM NAME:'SMF88SYN DFHMDF POS=(Ø5,3Ø),LENGTH=Ø8,COLOR=GREEN DFHMDF POS=(Ø5,5Ø),LENGTH=Ø9,COLOR=BLUE, * INITIAL='RELEASE:'SMF88OSL DFHMDF POS=(Ø5,63),LENGTH=8,COLOR=GREEN* --------------------- LINE 6 --------------------------------* DFHMDF POS=(Ø6,Ø1),LENGTH=13Ø,COLOR=TURQUOISE, * INITIAL='-------------- LOG STREAM SECTION ------------* -------------------------------------------------------* ---------------------------'* --------------------- LINE 7 --------------------------------* DFHMDF POS=(Ø7,Ø1),LENGTH=17,COLOR=BLUE, * INITIAL='LOG STREAM NAME: 'SMF88LSN DFHMDF POS=(Ø7,2Ø),LENGTH=26,COLOR=GREEN DFHMDF POS=(Ø7,5Ø),LENGTH=Ø9,COLOR=BLUE, * INITIAL='TOD-TIME:'SMF88LTD DFHMDF POS=(Ø7,6Ø),LENGTH=19,COLOR=GREEN* --------------------- LINE 8 --------------------------------* DFHMDF POS=(Ø8,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='# WRITES INVOKED : 'SMF88LWI DFHMDF POS=(Ø8,34),COLOR=GREEN,LENGTH=19, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9'* --------------------- LINE 9 --------------------------------* DFHMDF POS=(Ø9,Ø1),LENGTH=32,COLOR=BLUE, *

Page 58: CICS Performance Toolkit

58 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

INITIAL='BYT WRITTN BY USERS IXGWRITES : 'SMF88LWB DFHMDF POS=(Ø9,34),COLOR=GREEN,LENGTH=19, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9'* --------------------- LINE 1Ø -------------------------------* DFHMDF POS=(1Ø,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='MIN. BLOCKLEN IN SMF INTERVAL : 'SMF88LIB DFHMDF POS=(1Ø,34),COLOR=GREEN,LENGTH=19, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9' DFHMDF POS=(1Ø,54),LENGTH=78,COLOR=NEUTRAL, * INITIAL='(INITIALIZED TO X"7FFFFFFF" IF NO SMF ACTIVITY* OCCURS WITHIN AN SMF INTERVAL.)'* --------------------- LINE 11 -------------------------------* DFHMDF POS=(11,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='MAX. BLOCKLEN IN SMF INTERVAL : 'SMF88LAB DFHMDF POS=(11,34),COLOR=GREEN,LENGTH=19, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9'* --------------------- LINE 12 -------------------------------* DFHMDF POS=(12,Ø1),LENGTH=13Ø,COLOR=TURQUOISE, * INITIAL='-------------- STRUCTURE (INTERIM STORAGE) SECT* ION ------------------------------------------ (DASD) -* ---------------------------'* --------------------- LINE 13 -------------------------------* DFHMDF POS=(13,Ø1),LENGTH=15,COLOR=BLUE, * INITIAL='STRUCTURE NAME:'SMF88STN DFHMDF POS=(13,17),LENGTH=16,COLOR=GREEN* --------------------- LINE 14 -------------------------------* DFHMDF POS=(14,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='BYT WRITTN TO INTERIM STORAGE :'SMF88SWB DFHMDF POS=(14,34),LENGTH=19,COLOR=GREEN, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9' DFHMDF POS=(14,6Ø),LENGTH=32,COLOR=BLUE, * INITIAL='BYT WRITTN TO DASD :'SMF88LDB DFHMDF POS=(14,93),LENGTH=19,COLOR=RED, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9'* --------------------- LINE 15 -------------------------------* DFHMDF POS=(15,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='BYT DELETD INTERIM ST W/O DASD :'SMF88SIB DFHMDF POS=(15,34),LENGTH=19,COLOR=GREEN, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9' DFHMDF POS=(15,6Ø),LENGTH=32,COLOR=BLUE, * INITIAL='BYT DELETD INTERIM ST W/DASD :'SMF88SAB DFHMDF POS=(15,93),LENGTH=19,COLOR=RED, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9'* --------------------- LINE 16 -------------------------------* DFHMDF POS=(16,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='# DELETES W/O DASD WRITE :'SMF88SII DFHMDF POS=(16,34),LENGTH=19,COLOR=GREEN, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9' DFHMDF POS=(16,6Ø),LENGTH=32,COLOR=BLUE, *

Page 59: CICS Performance Toolkit

59© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

INITIAL='# DELETS W/WRITE :'SMF88SAI DFHMDF POS=(16,93),LENGTH=19,COLOR=RED, * PICOUT='ZZZ.ZZZ.ZZZ.ZZZ.ZZ9'* --------------------- LINE 17 -------------------------------* DFHMDF POS=(17,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='# WRITES COMPLETED - TYPE 1 :'SMF88SC1 DFHMDF POS=(17,34),LENGTH=15,COLOR=GREEN, * PICOUT='ZZZ.ZZZ.ZZZ.ZZ9' DFHMDF POS=(17,5Ø),LENGTH=8Ø,COLOR=NEUTRAL, * INITIAL='(TYPE1 = LOG STREAM CONTENTS CAN REMAIN IN STRU* CTURE. NO NEED TO MOVE DATA.)'* --------------------- LINE 18 -------------------------------* DFHMDF POS=(18,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='# WRITES COMPLETED - TYPE 2 :'SMF88SC2 DFHMDF POS=(18,34),LENGTH=15,COLOR=GREEN, * PICOUT='ZZZ.ZZZ.ZZZ.ZZ9' DFHMDF POS=(18,5Ø),LENGTH=8Ø,COLOR=NEUTRAL, * INITIAL='(TYPE2 = LOG STREAM IS FILLING THE STRUCTURE. L* OGGER STARTS OFFL. ASYNC.)'* --------------------- LINE 19 -------------------------------* DFHMDF POS=(19,Ø1),LENGTH=32,COLOR=BLUE, * INITIAL='# WRITES COMPLETED - TYPE 3 :'SMF88SC3 DFHMDF POS=(19,34),LENGTH=15,COLOR=GREEN, * PICOUT='ZZZ.ZZZ.ZZZ.ZZ9' DFHMDF POS=(19,5Ø),LENGTH=8Ø,COLOR=NEUTRAL, * INITIAL='(TYPE3 = SPACE USED IN THE STRUCTURE IS CRITICA* L BUT DOES NOT EXCEED 1ØØ%.)'* --------------------- LINE 2Ø -------------------------------* DFHMDF POS=(2Ø,Ø1),LENGTH=13Ø,COLOR=TURQUOISE, * INITIAL='-------------- EVENTS SECTION ----------------* -------------------------------------------------------* ---------------------------'* --------------------- LINE 21 -------------------------------* DFHMDF POS=(21,Ø1),LENGTH=11,COLOR=BLUE,INITIAL='DASD SHFT :'SMF88EDS DFHMDF POS=(21,13),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(21,25),LENGTH=11,COLOR=BLUE,INITIAL='STRC FULL :'SMF88ESF DFHMDF POS=(21,37),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(21,5Ø),LENGTH=11,COLOR=BLUE,INITIAL='OFFLOADS :'SMF88EOA DFHMDF POS=(21,62),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(21,7Ø),LENGTH=6Ø,COLOR=NEUTRAL,INITIAL=' (NUMBER O* F SUCCESSFUL OFFLOADS)'* --------------------- LINE 22 -------------------------------* DFHMDF POS=(22,Ø1),LENGTH=11,COLOR=BLUE,INITIAL='REBLD INI :'SMF88ERI DFHMDF POS=(22,13),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(22,25),LENGTH=11,COLOR=BLUE,INITIAL='STG THLD :'SMF88ETT DFHMDF POS=(22,37),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(22,5Ø),LENGTH=11,COLOR=BLUE,INITIAL='OFFL.9Ø% :'SMF88EFS DFHMDF POS=(22,62),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(22,7Ø),LENGTH=6Ø,COLOR=NEUTRAL,INITIAL=' (NO.OF SU* SUCCESSFUL OFFLOADS DUE TO STRUC.REACHING 9Ø% FULL)'

Page 60: CICS Performance Toolkit

60 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

* --------------------- LINE 23 -------------------------------* DFHMDF POS=(23,Ø1),LENGTH=11,COLOR=BLUE,INITIAL='REBLD CMP :'SMF88ERC DFHMDF POS=(23,13),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(23,25),LENGTH=11,COLOR=BLUE,INITIAL='STG FULL :'SMF88ETF DFHMDF POS=(23,37),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(23,5Ø),LENGTH=11,COLOR=BLUE,INITIAL='IXGOFFLD :'SMF88EDO DFHMDF POS=(23,62),LENGTH=7,COLOR=RED,PICOUT='ZZZ.ZZ9' DFHMDF POS=(23,7Ø),LENGTH=6Ø,COLOR=NEUTRAL,INITIAL=' (NUMBER O* F TIMES AN OFFLOAD WAS REQUESTED VIA IXGOFFLD SERVICE)'* --------------------- LINE 24 -------------------------------* DFHMDF POS=(24,Ø1),LENGTH=13Ø,COLOR=TURQUOISE, * INITIAL='----------------------------------------------* -------------------------------------------------------* ---------------------------'* --------------------- LINE 25 -------------------------------*MSG DFHMDF POS=(25,Ø1),LENGTH=13Ø,COLOR=RED* --------------------- LINE 26 -------------------------------* DFHMDF POS=(26,Ø1),LENGTH=2,COLOR=YELLOW,INITIAL='PF' DFHMDF POS=(26,Ø4),LENGTH=2,COLOR=TURQUOISE,INITIAL=' 3'PF3 DFHMDF POS=(26,Ø7),LENGTH=9,COLOR=YELLOW,INITIAL='RETURN ' DFHMDF POS=(26,17),LENGTH=2,COLOR=TURQUOISE,INITIAL=' 7'PF7 DFHMDF POS=(26,2Ø),LENGTH=9,COLOR=YELLOW,INITIAL='UP ' DFHMDF POS=(26,3Ø),LENGTH=2,COLOR=TURQUOISE,INITIAL=' 8'PF8 DFHMDF POS=(26,33),LENGTH=9,COLOR=YELLOW,INITIAL='DOWN ' DFHMDF POS=(26,43),LENGTH=2,COLOR=TURQUOISE,INITIAL=' 9'PF9 DFHMDF POS=(26,46),LENGTH=9,COLOR=YELLOW,INITIAL='FIRST I. ' DFHMDF POS=(26,56),LENGTH=2,COLOR=TURQUOISE,INITIAL='1Ø'PF1Ø DFHMDF POS=(26,59),LENGTH=9,COLOR=YELLOW,INITIAL='MIDLE I. ' DFHMDF POS=(26,69),LENGTH=2,COLOR=TURQUOISE,INITIAL='11'PF11 DFHMDF POS=(26,72),LENGTH=9,COLOR=YELLOW,INITIAL='LAST I. ' DFHMDF POS=(26,82),LENGTH=2,COLOR=TURQUOISE,INITIAL=' ' DFHMDF POS=(26,85),LENGTH=3Ø,COLOR=NEUTRAL, * INITIAL=' (I. = SMF INTERVAL)'* --------------------- LINE 27 -------------------------------* DFHMDF POS=(27,Ø1),LENGTH=2,COLOR=YELLOW,INITIAL='PF' DFHMDF POS=(27,Ø4),LENGTH=2,COLOR=TURQUOISE,INITIAL='13'PF13 DFHMDF POS=(27,Ø7),LENGTH=9,COLOR=YELLOW,INITIAL='DASD SHFT' DFHMDF POS=(27,17),LENGTH=2,COLOR=TURQUOISE,INITIAL='14'PF14 DFHMDF POS=(27,2Ø),LENGTH=9,COLOR=YELLOW,INITIAL='OFFLOAD ' DFHMDF POS=(27,3Ø),LENGTH=2,COLOR=TURQUOISE,INITIAL='15'PF15 DFHMDF POS=(27,33),LENGTH=9,COLOR=YELLOW,INITIAL='STG FULL ' DFHMDF POS=(27,43),LENGTH=2,COLOR=TURQUOISE,INITIAL='16'PF16 DFHMDF POS=(27,46),LENGTH=9,COLOR=YELLOW,INITIAL='STG THLD ' DFHMDF POS=(27,56),LENGTH=2,COLOR=TURQUOISE,INITIAL='17'PF17 DFHMDF POS=(27,59),LENGTH=9,COLOR=YELLOW,INITIAL='STR FULL ' DFHMDF POS=(27,69),LENGTH=2,COLOR=TURQUOISE,INITIAL='18'PF18 DFHMDF POS=(27,72),LENGTH=9,COLOR=YELLOW,INITIAL='OFFL.9Ø% ' DFHMDF POS=(27,82),LENGTH=2,COLOR=TURQUOISE,INITIAL=' ' DFHMDF POS=(27,85),LENGTH=9,COLOR=YELLOW,INITIAL=' '

Page 61: CICS Performance Toolkit

61© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

DFHMDF POS=(27,95),LENGTH=2,COLOR=TURQUOISE,INITIAL='23'PF23 DFHMDF POS=(27,98),LENGTH=9,COLOR=YELLOW,INITIAL='AVERAGE ' DFHMDF POS=(27,1Ø8),LENGTH=2,COLOR=TURQUOISE,INITIAL='24'PF24 DFHMDF POS=(27,111),LENGTH=9,COLOR=YELLOW,INITIAL='TOTALS ' DFHMDF POS=(27,121),LENGTH=2,COLOR=TURQUOISE,INITIAL=' ' DFHMSD TYPE=FINALEND

Erhard WoernerCICS Support GroupIBM (Germany) © IBM 2002

Monitoring CICS activity

This article describes how to keep an on-line and historical view of all thesystem and application activities in the CICS session, which are written toan application and/or CICS transient data. This process is done almostautomatically.

We have developed a rather simple method to keep a close track on theseactivities, to archive those activities onto a monthly tape while CICS isrunning, ensuring that each month has its own tape, and to ensure datacontinuity when CICS is terminated or cancelled.

The solution described here is valid for any installation that uses CICS/ESA with JES2 and SDSF. It has been tested on CICS Versions 3.3 and 4.1with MVS and OS/390.

APPLICATION AND SYSTEM QUEUES

To start from the DCT, we have a TD queue whose name is wellknown to all the application programmers. This name is stored in the CICSCWA. The application programmer can retrieve the name from the CWAand use this queue to write application notes about things that are worthtaking care of but are not critical enough to be written to the system console.In the test environment this queue may be used as a debugging tool.

Page 62: CICS Performance Toolkit

62 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

We use the DCT indirection mechanism to point from the queue logicalname to the extra-partition queue, and from the extra-partition queue tothe SDSCI. The DCT source code is listed below:

DFHDCT TYPE=SDSCI, DSCNAME=DCPMJNA, RECSIZE=142, BLKSIZE=146,BUFNO=1,RECFORM=VARUNB, TYPEFLE=OUTPUT�����DFHDCT TYPE=EXTRA, DESTID=DJNA, DSCNAME=DCPMJNA, OPEN=INITIAL�����.DFHDCT TYPE=INDIRECT, DESTID=DCPM, INDDEST=DJNA��������..

DFHDCT TYPE=SDSCI, DSCNAME=DCPMJNF, RECSIZE=142, BLKSIZE=146,BUFNO=1,RECFORM=VARUNB, TYPEFLE=OUTPUT�����DFHDCT TYPE=EXTRA, DESTID=DJNF, DSCNAME=DCPMJNF, OPEN=INITIAL�����.DFHDCT TYPE=INDIRECT, DESTID=SKØ3, INDDEST=DJNA

In the table above there are two ‘application’ queues – one is for the generalapplication queue, and the other is for the ATM sub-system, which ismonitored by a different group of people.

For the CICS system programmer, all CICS system queues (full descriptionof which might be found in the CICS resource definition macro) have beensplit into two groups:

• The CICS system queues that deal with terminals and VTAM-CICSactivity.

• The rest of the CICS system queues.

This separation has been done because the queues that hold ‘network’information tend to be very big, and it is more convenient to see themessages sent to the ‘non-network’ queue.

It is possible, of course, to point from many indirect queues to one extra-partition queue, although in this method data from different queues mixin the extra-partition queue.

On the whole, in our shop, we keep four different SDSCI. They are for:

• The main application log.

• The ‘special’ application log.

Page 63: CICS Performance Toolkit

63© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

• General CICS queue.

• The CICS queues that deal with terminals, VTAM-CICS transportation,etc.

It is an installation decision whether and how to split the CICS queue intodifferent DDnames. One might consider splitting the ‘application logs’ bythe degree of severity. Another method is to keep all the CICS built-inqueues, which deal with the RDO, in a single separate DDname to keep aneye on the RDO activity. Anyhow, the mechanism described here can betailored easily.

In our CICS job we have four DDnames, one for each SDSCI.

The declarations of those DD cards are listed below:

//DCPMJNT DD SYSOUT=M,DCB=(DSORG=PS,RECFM=V,BLKSIZE=66Ø),FREE=CLOSE//DCPMJNL DD SYSOUT=M,DCB=(DSORG=PS,RECFM=V,BLKSIZE=66Ø),FREE=CLOSE//DCPMJNA DD SYSOUT=M,DCB=(DSORG=PS,RECFM=V,BLKSIZE=73Ø)//DCPMJNF DD SYSOUT=M,DCB=(DSORG=PS,RECFM=V,BLKSIZE=73Ø)

The ‘FREE=CLOSE’ parameter means that whenever the external queue,which points to the SDSCI, is closed in CICS, the DDname will be freed.The BLKSIZE parameter should be chosen according to the installation,but one should not use too big a block size, because this will cause a delayin writing some of the records to JES.

DETECTING THE QUEUE CONTENTS WHILE CICS IS RUNNING

The output of the queues is written to JES2, so it is possible, while CICSis running, for the application programmers to see all the records that werewritten to the transient data. After locating the CICS job in JES, using theSDSF display command ‘?’ will show all the DDnames.

An example is shown below:

DCPMJNA SS5ØCICP 139 MMU M 3,257 389,474 1DCPMJNF SS5ØCICP 138 MMU M 1,352 154,574 1DCPMJNL SS5ØCICP 137 MMU M 1,446 136,37Ø 1DCPMJNT SS5ØCICP 136 MMU M 28,49Ø 2M 1DCPMJNA SS5ØCICP 135 MMU M LOCAL 2,74Ø 319,299 1 3 12 LINEDCPMJNF SS5ØCICP 134 MMU M LOCAL 8Ø6 115,948 1 3 11 LINEDCPMJNL SS5ØCICP 133 MMU M LOCAL 787 68,Ø1Ø 1 3 1Ø LINEDCPMJNT SS5ØCICP 132 MMU M LOCAL 13,2Ø3 1M 1 3 9 LINE

Page 64: CICS Performance Toolkit

64 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

DCPMJNA SS5ØCICP 131 MMU M LOCAL 4,628 567,519 1 3 8 LINEDCPMJNF SS5ØCICP 13Ø MMU M LOCAL 782 115,Ø9Ø 1 3 7 LINEDCPMJNL SS5ØCICP 129 MMU M LOCAL 942 83,Ø43 1 3 6 LINEDCPMJNT SS5ØCICP 128 MMU M LOCAL 37,998 3M 1 3 5 LINEDCPMJNF SS5ØCICP 125 MMU M LOCAL 417 61,972 1 3 3 LINEDCPMJNA SS5ØCICP 124 MMU M LOCAL 2,5Ø3 281,485 1 3 4 LINEDCPMJNL SS5ØCICP 123 MMU M LOCAL 1,353 13Ø,Ø76 1 3 2 LINEDCPMJNT SS5ØCICP 122 MMU M LOCAL 19,131 1M 1 3 1 LINEGDMT SS5ØCICP 11Ø MMU A Ø 1DFHCXRF SS5ØCICP 1Ø6 MMU T 68 7,816 1

The default sort of the DDnames is by DSID. Using this sort, the currentlyactive DDname will always display on the top of the list, so if theapplication programmer wishes to see the current notes of his/her applicationhe/she will select ‘S’ near the DCPMJNA on the top of the list.

Application DDname can be easily located. The programmer can now seeall the messages that were issued by the application. The system programmercan look at a different DDname to see what is going on in CICS.

SWITCHING TO A NEW GENERATION

In order to switch to a new generation, four operations have to beperformed inside CICS:

• All the queues (the extra-partition queues) must be closed. The syntaxof the command is:

CEMT SET TDQ(DJN*) CLOSE

• All the DDnames must be de-allocated using SVC99. The syntax ofthe command is:

ADYN FREE DDname(DCPMJN*) UNALLOC

This step is not necessary if ‘FREE=CLOSE’ is declared.

• The new DDname must be allocated again using:

ADYN ALLOC DDname(DCPMJN*) SYSOUT(M)

• Lastly, the queue should be opened again using:

CEMT SET TDQ(DJN*) open

Page 65: CICS Performance Toolkit

65© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

The * stands for all the suffixes of the queues and DDnames.

Between the queue closing and re-opening it is impossible to write to it,but since this is a very short period, at non-business hours, it is not aproblem.

Right after the DDname is allocated again, a new generation is created, anda batch program may be used to copy the older generation to a monthly tape.

AUTOMATING THE SWITCHING PROCESS

The sequence of four operations, described above, can be carried out inseveral ways:

• Using a product (in our case Control-O from BMC/New Dimension)to log into the CICS and use the transaction ADYN. This solutionworks for us in our production environment. The transaction ADYNcomes with the CICS installation in the group DFH$UTIL.

The source of the Control-O program is attached to this article, butit is useless for CICS installations that do not haveControl/O. This source program can be used as an example of how touse TDYN Transaction after signing on to CICS.

• Using the transaction TDYN and the program it starts to de-allocateand allocate the DD cards. TDYN has the same functionality asADYN, but it is not a conversational transaction and, as such, does notrequire any terminal to be logged on. This is a general solution, whichwill hold for any CICS-MVS installation. Its disadvantage is that thereis no control over the results of the allocation/de-allocation.

TPADYN3 is the Assembler program that the TDYN transaction uses.The source of TPADYN3 and the routine it uses, JHTRT, are part ofthis article. Please note that with slight modifications this programmay be useful for other tasks in CICS system programming.

• It is also possible to use the CICS external interface (EXCI) to issuethe DFH99 program. The advantage of this solution is that there is fullcontrol and guarantee over the results of the allocation/de-allocation.The disadvantage is that EXCI is rather complicated.

Page 66: CICS Performance Toolkit

66 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

A batch-to-CICS interface can be found in the February 1999 issueof CICS Update, Issue 159, pages 25-31, Exploiting EXCI to manageCICS files from batch.

In each of the methods selected, first de-allocation and then allocation mustbe done. If the parameter ‘FREE=CLOSE’ is defined in the CICS job JCL,then de-allocation is simple, using CEMT to close the external queue.Closing the queue will flush all the records to JES and the queue will bede-allocated. If ‘FREE=CLOSE’ is not defined, then after closing thequeue it must be de-allocated by using ADYN or TDYN, which eventuallyissues the MVS SVC99.

The process of de-allocation and allocation must be done, of course, forall the queues. After the de-allocation and allocation of the queue, a newDDname will appear in JES2 and all the activities of the CICS system andapplications will be written into the new DDname.

If the process of de-allocation and allocation is done daily at 5am, then eachDDname represents the CICS activities for the day. This information willbe kept on JES until CICS is recycled.

KEEPING AND MAINTAINING THE ACTIVITIES

After the switching (de-allocation and allocation) has taken place, the datashould be collected from JES and stored on a monthly tape. The scheduler(in our case Control-M) does this immediately after the de-allocation andallocation program (which is done inside CICS). It starts the following job:

//SSØ1DCPP JOB (SSØ4,626,99),SDSFBAT,NOTIFY=SØØ4//*************************************************************//* SDSF batch job to release CICS massive printing *//* this job must run on a system where CICS is running *//* the first two steps simply invoke from batch program SDSF *//* which allows the user to imitate the on-line operations *//* from batch. Note that when this program is running the second//* DDname is what we want to copy to the tape, since the//* "log switching" has already been done//*************************************************************//EXEC PGM=SDSF,PARM='++24,131'//ISFOUT DD SYSOUT=T//ISFIN DD *PREFIX SS5Ø*

Page 67: CICS Performance Toolkit

67© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

D AFIND SS5ØCICP++?SORT DSID DFIND DCPMJNADOWN 1FIND DCPMJNA++SPRINT ODSN 'SYSO.DCPMJNA' * MODPRINTPRINT CLOSE//EXEC PGM=SDSF,PARM='++24,131'//ISFOUT DD SYSOUT=T//ISFIN DD *PREFIX SS5Ø*D AFIND SS5ØCICP++?SORT DSID DFIND DCPMJNFDOWN 1FIND DCPMJNF++SPRINT ODSN 'SYSO.DCPMJNF' * MODPRINTPRINT CLOSE//* .������������������.//* | |//* | STEP #1 : |//* | CICS/LOG DATE CHECK |//* | POSSIBLE RC: |//* | 1Ø...NEW DAY |//* | 2Ø...NEW MONTH |//* | 2Ø...NEW YEAR |//* | 99...SAME DAY |//* | |//* .������������������./ *//CHECKDT EXEC PGM=IKJEFTØ1,DYNAMNBR=3Ø,TIME=144Ø//SYSTSPRT DD SYSOUT=T//SYSPRINT DD SYSOUT=M//SYSPROC DD DSN=SYS2.CLIST,DISP=SHR//ISPPLIB DD DSN=SYS1.ISP.SISPPENU,DISP=SHR//ISPMLIB DD DSN=SYS1.ISP.SISPMENU,DISP=SHR//ISPSLIB DD DSN=SYS1.ISP.SISPSLIB,DISP=SHR//ISPTLIB DD DSN=SYS1.ISP.SISPTENU,DISP=SHR//ISPPROF DD UNIT=VIO,SPACE=(TRK,(9,1,4)),// DCB=(LRECL=8Ø,BLKSIZE=312Ø,RECFM=FB)//ISPTABL DD UNIT=VIO,SPACE=(TRK,(9,1,4)),

Page 68: CICS Performance Toolkit

68 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

// DCB=(LRECL=8Ø,BLKSIZE=312Ø,RECFM=FB)//ISPLIST DD DSN=&&LIST,UNIT=VIO,SPACE=(TRK,(1,1)),// DCB=(LRECL=121,BLKSIZE=121Ø,RECFM=FBA)//ISPLOG DD DSN=&&LOG,UNIT=VIO,SPACE=(TRK,(1,1)),// DCB=(LRECL=121,BLKSIZE=121Ø,RECFM=FBA)//TMOND DD DSN=SYSO.CICSPROD.DATEBU,DISP=SHR//SYSTSIN DD DSN=PMTF.PARMLIB(CHKDATE),DISP=SHR//*//* .������������������.//* | |//* | STEP #2 : |//* | IF IT IS THE SAME DATE, |//* | THE BACK-UP WAS RERUN - |//* | COPY RO THE SAME MONTH |//* .������������������.//*NODUMP EXEC PGM=IEFBR14,//* COND=(99,NE,CHECKDT)//DUMSDAY1 EXEC PGM=IEBGENER,// COND=(99,NE,CHECKDT)//SYSPRINT DD SYSOUT=*//SYSUT1 DD DSN=SYSO.DCPMJNA,DISP=SHR//SYSUT2 DD DSN=SYSO.CICSLOGT.DCPMJNA(Ø),DISP=MOD//SYSIN DD DUMMY/ *//DUMSDAY2 EXEC PGM=IEBGENER,// COND=(99,NE,CHECKDT)//SYSPRINT DD SYSOUT=*//SYSUT1 DD DSN=SYSO.DCPMJNF,DISP=SHR//SYSUT2 DD DSN=SYSO.CICSLOGT.DCPMJNF(Ø),DISP=MOD//SYSIN DD DUMMY//*//*//* .������������������.//* | |//* | STEP #3 : |//* | IF IT IS A NEW DAY AT |//* | THE SAME MONTH |//* | WRITE INTO EXISTING TAPE |//* .������������������.//DUMPMOD1 EXEC PGM=IEBGENER,// COND=(1Ø,NE,CHECKDT)//SYSPRINT DD SYSOUT=*//SYSUT1 DD DSN=SYSO.DCPMJNA,DISP=SHR//SYSUT2 DD DSN=SYSO.CICSLOGT.DCPMJNA(Ø),DISP=MOD//SYSIN DD DUMMY/ *//DUMPMOD2 EXEC PGM=IEBGENER,// COND=(1Ø,NE,CHECKDT)//SYSPRINT DD SYSOUT=*

Page 69: CICS Performance Toolkit

69© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

//SYSUT1 DD DSN=SYSO.DCPMJNF,DISP=SHR//SYSUT2 DD DSN=SYSO.CICSLOGT.DCPMJNF(Ø),DISP=MOD//SYSIN DD DUMMY/ *//*//* .����������������.//* | STEP #3 : |//* | TAKE THE DUMPED FILE AND |//* | COPY IT IN DISP=NEW TO |//* | NEW CUMM. MONTH TAPE (DETAIL) |//* |_________________________________|/ *//COPYNEW1 EXEC PGM=IEBGENER,COND=(2Ø,NE,CHECKDT)//SYSPRINT DD SYSOUT=*//SYSUT1 DD DSN=SYSO.DCPMJNA,DISP=SHR//SYSUT2 DD DSN=SYSO.CICSLOGT.DCPMJNA(+1),DISP=(NEW,CATLG),// DCB=(MODEL,RECFM=VB,LRECL=125,BLKSIZE=134Ø,// DSORG=PS),UNIT=TP9Ø ,VOLUME=(,,,5Ø)//SYSIN DD DUMMY/ *//*//COPYNEW2 EXEC PGM=IEBGENER,COND=(2Ø,NE,CHECKDT)//SYSPRINT DD SYSOUT=*//SYSUT1 DD DSN=SYSO.DCPMJNF,DISP=SHR//SYSUT2 DD DSN=SYSO.CICSLOGT.DCPMJNF(+1),DISP=(NEW,CATLG),// DCB=(MODEL,RECFM=VB,LRECL=125,BLKSIZE=134Ø,// DSORG=PS),UNIT=TP9Ø ,VOLUME=(,,,5Ø)//SYSIN DD DUMMY/ *//*//RECYCL1 EXEC PGM=IEFBR14//FILE DD DSN=SYSO.DCPMJNA,DISP=(OLD,DELETE,DELETE)// DD DSN=SYSO.DCPMJNF,DISP=(OLD,DELETE,DELETE)//RECYCL2 EXEC PGM=IEFBR14//FILE DD DSN=SYSO.DCPMJNA,DISP=(NEW,CATLG),// DCB=(MODEL,RECFM=VB,LRECL=125,BLKSIZE=134Ø,DSORG=PS),// UNIT=339Ø,VOL=SER=TESTØ3,SPACE=(TRK,(5,1))// DD DSN=SYSO.DCPMJNF,DISP=(NEW,CATLG),// DCB=(MODEL,RECFM=VB,LRECL=125,BLKSIZE=134Ø,DSORG=PS),// UNIT=339Ø,VOL=SER=TESTØ3,SPACE=(TRK,(5,1))

The job above contains a call to SYS2.CLIST(CHKDATE); the CLISTsource is attached below. What SYS2.CLIST(CHKDATE) is doing israther simple. It compares today’s date with the day in the fileSYSO.CICSPROD.DATEBU. It returns RC20 for a new year, 10 for a newmonth, and 99 for the same month.

The execution day is copied to file SYSO.CICSPROD.DATEBU at the end

Page 70: CICS Performance Toolkit

70 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

of the CLIST.

The file SYSO.CICSPROD.DATEBU should be unique at an installation.

The program was changed and it is now Y2K-enabled.

/* REXX */TRACE NSTAT=MSG(ON)CURDATE = DATE('E')CURDAY = SUBSTR(CURDATE,1,2)CURMON = SUBSTR(CURDATE,4,2)CURYER = SUBSTR(CURDATE,7,2)READ: "EXECIO 1 DISKRU TMOND" PULL TMOND SAY 'Today is............' CURDATE SAY 'Last run was at.....' TMOND TMDATE = TMOND TMDAY = SUBSTR(TMDATE,1,2) TMMON = SUBSTR(TMDATE,4,2) TMYER = SUBSTR(TMDATE,7,2)NEWYEAR: IF CURYER <> TMYER THEN DO CC = 2Ø TMDATE = CURDATE PUSH TMDATE "EXECIO 1 DISKW TMOND" SIGNAL EOF ENDNEWMON: IF CURMON <> TMMON THEN DO CC = 2Ø TMDATE = CURDATE PUSH TMDATE "EXECIO 1 DISKW TMOND" SIGNAL EOF ENDNEWDAY: IF CURDAY <> TMDAY THEN DO CC = 1Ø TMDATE = CURDATE PUSH TMDATE "EXECIO 1 DISKW TMOND" SIGNAL EOF ENDSAMEDAY: IF CURDAY = TMDAY THEN CC = 99EOF: "EXECIO Ø DISKW TMOND (FINIS" EXIT CC

Page 71: CICS Performance Toolkit

71© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

READING THE LOG

Usually application programmers like to know what is going on now in thecurrently running CICS, but sometimes they discover a problem in anapplication a week or even a month later.

The method described here enables the application/system programmer toeasily browse the CICS system log, as long as the data he/she wishes to readis not older than the number of generations we keep for the tape. Since eachtape contains one month, it is recommended to keep at least six generations– enabling a half-year history log.

The job to retrieve the data is fairly simple and it is listed here:

//SsØØ4DMP JOB (SSØ1,A1,2Ø),URIC,MSGCLASS=T,NOTIFY=SØØ4//IEBGENER EXEC PGM=IEBGENER//SYSPRINT DD SYSOUT=*//SYSUT1 DD DSN=SYSO.CICSLOGT.DCPMJNA(Ø),DISP=SHR//*SYSUT1 DD DSN=SYSO.CICSLOGT.DCPMJNF(Ø),DISP=SHR//SYSUT2 DD DSN=SYSP.LOGCHK2,DISP=SHR//SYSIN DD DUMMY

All that the CICS system programmer has to do is to fill in the rightgeneration in the DDname SYSUT1. If we are in April and after a cold startto CICS we wish to know who has deleted that transaction from the RDOback in January, we need to insert ‘–3’ inside the brackets.

WHAT TO DO IF YOU ARE GOING TO RECYCLE CICS

This is where the process is not automatic any more. The operator shouldremember to start a special job right before CICS is brought down. The jobis the same daily job that was started by the scheduler.

WHAT TO DO IF CICS WAS CANCELLED

Of course if CICS is cancelled this is not the right time to lose your system/application logs.

In order to prevent it, a different job must be run. This ‘post mortem’ jobwill look at the data from the non-active CICS. It should be run right aftera CICS crash, but not necessarily before a new CICS is started. In order tosave some space, I’m only showing the first two steps of the JCL – all therest are equivalent to the job that is run from the scheduler.

Page 72: CICS Performance Toolkit

72 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

This job takes advantage of the fact that in SDSF after the CRDATEcommand is used, the DDnames are sorted in the same order as in the job.

//EXEC PGM=SDSF,PARM='++24,131'//ISFOUT DD SYSOUT=T//ISFIN DD *

//ISFOUT DD SYSOUT=T//ISFIN DD *PREFIX SS5ØCICPHSORT CRDATE DFIND SS5ØCICP++?FIND DCPMJNA++SPRINT ODSN 'SYSO.DCPMJNA' * MODPRINTPRINT CLOSE

//EXEC PGM=SDSF,PARM='++24,131'//ISFOUT DD SYSOUT=T//ISFIN DD *PREFIX SS5Ø*D AFIND SS5ØCICP++?SORT DSID DFIND DCPMJNFDOWN 1FIND DCPMJNF++SPRINT ODSN 'SYSO.DCPMJNF' * MODPRINTPRINT CLOSE

PROGRAMS USED FOR AUTOMATING THE SWITCHING PROCESS

The following programs are used to automate the switching process –xeasm1, xeasm2, and xecto.

Xeasm1* THIS PROGRAM ENABLES DYNAMIC DEALLOCATION OR ALLOCATION OF* EXTERNAL TD-QUEUES.* IT IS ACTIVATED BY THE FOLLOWING INPUT* TDYN FREE DDNAME(DDNAME) (UNALLOC ASSUMED)* (OR) TDYN ALLOC DDNAME(DDNAME) SYSOUT(M) (STATUS SHR ASSUMED)

Page 73: CICS Performance Toolkit

73© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

* UNLIKE ADYN, IT IS NOT A CONVERSATIONAL TRANSACTION* EG IT CAN BE USED WITH MVS MODIFY COMMAND.* THE PROGRAM USES DYNAMIC ALLOCATION DIRECTLY.* IN THE CICS-SAMPLE-GUIDE THERE ARE EXAMPLES OF HOW TO* USE DYALLOC FROM CICS.* WITH SOME MODIFICATION IN THE DYNAMIC ALLOCATION TEXT UNITS* THIS PROGRAM MAY BE USE TO ALLOC/DE-ALLOC DSNAMES.* THIS PROGRAM MUST BE LINKED WITH AMOD AND RMOD 24.* THE TRANSACTION THAT STARTS THIS PROGRAM SHOULD BE DEFINED WITH* TASKDATAKEY=CICS.RNAME EQU 5RLEN EQU 6RWK EQU 4RRC EQU 7RBAL EQU 8R1 EQU 1R15 EQU 15DFHEISTG DSECTECB99 DS ATCB99 DS A*TPADYN3 DFHEIENT CODEREG=3,DATAREG=1Ø,EIBREG=11* MVC MSG(29),MSG1 MVI TEXT,C' ' MVC TEXT+1(89),TEXT LA RWK,9Ø STH RWK,TEXTLEN EXEC CICS RECEIVE INTO(TEXT) LENGTH(TEXTLEN) CALL JHTRT,(TEXTLEN,FREELEN) * IS IT A FREE CALL LTR R15,R15 * IF IT DOES GO EXECUTE BZ EXFREE CALL JHTRT,(TEXTLEN,ALLOCLN) * IS IT AN ALLOCATION LTR R15,R15 * IF IT DOES GO EXECUTE BZ EXALLOC* * ELSE IT IS AN ERROR MVC MSG(29),MSG5 * ACTION NOT SPECIFIED B BRTRNEXFREE BAL RBAL,DDSRCH * GO CHECK FOR DDNAME LTR RRC,RRC * IF NO DDNAME FOUND BP NOTIFY * IT IS AN ERROR BCTR RLEN,Ø EX RLEN,DDCHK * GO TO EXECUTE MVC MVI CIC99VRB,X'Ø2' VERB CODE FOR UNALLOCATION MVC CIC99TLA,=A(CIC99UTU) ADDR OF LIST OF UNALLOC XR R15,R15 LA R1,CIC99PTR SVC 99 PARAMETER LIST ADDRESS DYNALLOC CH R15,HØ4 CHECK SVC 99 RC BL BRTRN Ø. GO SEND SUCCESS MESSAGE

Page 74: CICS Performance Toolkit

74 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

BH FAILED 8-12. GO SEND GENERAL ERROR CLC CIC99ERR,H1Ø56 4. IS IT X'42Ø' BNE FAILED 4. NO-SEND GENERAL ERROR B NOTOPEN 4. YES-SEND NOT OPENEXALLOC BAL RBAL,DDSRCH GO LOOK FOR THE DDNAME LTR RRC,RRC * IF BAD RC FROM DDSRCH BP NOTIFY BCTR RLEN,Ø EX RLEN,DDCHK MVI CIC99VRB,X'Ø1' VERB CODE FOR ALLOCATION MVC CIC99TLA,=A(CIC99ATU) ADDR OF LIST OF ALLOC TEXT UNITS XR R15,R15 LA R1,CIC99PTR SVC 99 PARAMETER LIST ADDRESS DYNALLOC LTR R15,R15 BNZ FAILED B BRTRNFAILED MVC MSG(29),MSG4 ACTION FAILED B BRTRNNOTOPEN MVC MSG(29),MSG6 ACTION FAILED - NOT OPEN B BRTRNNOTIFY CH RRC,=H'8' MVC MSG(29),MSG2 DDNAME NOT SPECIFIED B BRTRNRC12 MVC MSG(29),MSG3 DDNAME TOO LONGBRTRN DS ØH EXEC CICS SEND FROM(MSG) LENGTH(29) EXEC CICS RETURNDDSRCH CALL JHTRT,(TEXTLEN,DDNLEN) LOOK FOR DDNAME KEWORD LTR R15,R15 NO DDNAME IN INPUT BNZ NONAME LA RWK,7(R1) RWK POINT TO TEXT LR RNAME,RWK BCTR RWK,ØNEXT1 LA RWK,1(RWK) RWK POINT TO NEXT CHAR CLC Ø(1,RWK),HYP IS IT THE END OF DDNAME BNE NEXT1 NO CHECK NEXT CHAR SR RWK,RNAME YES CHECK IF VALID LENGTH LTR RWK,RWK CHECK IF DDNAME EXIST BZ NONAME ELSE RWK CONTAIN DDNAME LENGTH CH RWK,=H'8' IF DDNAME IS TOO LONG BH TOOLONG LR RLEN,RWK RLEN CONTAIN STRING LENGTH SR RRC,RRC SET RRC TO ZERO BR RBAL RETURN TO CALLERNONAME LA RRC,8 DDNAME MISSING BR RBALTOOLONG LA RRC,12 DDNAME TOO LONG BR RBALTEXTLEN DS H

Page 75: CICS Performance Toolkit

75© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

TEXT DS CL9ØFREELEN DC H'4'FREE DC CL4'FREE'ALLOCLN DC H'5'ALLOC DC CL5'ALLOC'DDNLEN DC H'7'DDNAME DC CL7'DDNAME('HYP DC CL1')'MSG DS CL29MSG1 DC CL29'ACTION SUCCESSFULL 'MSG2 DC CL29'DDNAME NOT SPECIFIED 'MSG3 DC CL29'DDNAME TOO LONG 'MSG4 DC CL29'ACTION FAILED 'MSG5 DC CL29'ACTION NOT SPECIFIED 'MSG6 DC CL29'ACTION FAILED FILE IS OPEN 'HØ4 DC H'4'H1Ø56 DC H'1Ø56'* SVC 99 PARAMETER LISTCIC99PTR DC X'8Ø',AL3(CIC99RB) REQUEST BLOCK POINTERCIC99RB DS ØF REQUEST BLOCK DC AL1(2Ø) LENGTH OF REQUEST BLOCKCIC99VRB DS X VERB CODE DC 2X'Ø' FLAGSCIC99ERR DC XL2'Ø' ERROR REASON CODE DC XL2'Ø' INFORMATION REASON CODECIC99TLA DS A ADDR OF LIST OF TEXT UNIT PTRS DC F'Ø' RESERVED DC 4X'Ø' FLAGS FOR AUTHORIZED FUNCTIONS*CIC99ATU DS ØF ALLOC TEXT UNIT POINTER LIST DC X'ØØ',AL3(CICDDNAM) DC X'ØØ',AL3(CICSYSOU) DC X'8Ø',AL3(CICSPINS)*CIC99UTU DS ØF UNALLOC TEXT UNIT POINTER LIST DC X'8Ø',AL3(CICDDNAM)* TEXT UNITSCICDDNAM DC X'ØØØ1',HL2'1',HL2'8',CL8' ' DDNAMECICDNUM EQU *-8CICSYSOU DC X'ØØ18',HL2'1,1',X'D4' SYSOUT(M)CICSPINS DC X'8Ø13',HL2'1,1',X'8Ø' PRINT IMMEDIATELYDDCHK MVC CICDNUM(Ø),Ø(RNAME) END

Xeasm2JHTRT START BEGIN EQUR=YES L R3,Ø(R1) * LOAD STRING ADDRESS L R4,4(R1) * LOAD SUBSTRING ADDRESS

Page 76: CICS Performance Toolkit

76 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

LH R5,Ø(R3) * LOAD LENGTH OF STRING LH R6,Ø(R4) * LOAD LENGTH OF SUBSTRING LA R8,Ø(R3,R5) * R8 POINT AT END OF STRING BCTR R5,Ø * MAKE LENGTH FOR EX COMMAND BCTR R6,Ø * MAKE LENGTH FOR EX COMMAND CR R5,R6 * IS STRING SHORTER THEN SUBSTRING ? BL TOOLONG * YES ? GO TELL CALLER CH R5,=H'255' * IS LENGTH OVER ALLOWED LENGTH ? BH TOOLONG * YES ? GO TELL CALLER CH R6,=H'255' * IS LENGTH OVER ALLOWED LENGTH ? BH TOOLONG * YES ? GO TELL CALLER LA R3,2(R3) * LOAD ADDR FIRST CHAR OF STRING LA R4,2(R4) * LOAD ADDR FIRST CHAR OF SUBSTRING XC TAB(256),TAB * CLEAR TRT TABLE XR R1,R1 * CLEAR REGISTER IC R1,Ø(R4) * FIRST CHAR OF SUBSTRING LA R2,TAB * LOAD TAB ADDRESS LA R2,Ø(R1,R2) * OFFSET OF FIRST CHAR OF SUBSTRING STC R1,Ø(R2) * INSERT INTO TAB FOR TRTEXTRT DS ØH * EX R5,TRT * EX TRT BZ NOTFOUND * NOT FOUND ? GO TO END CR R1,R8 * TRT STOP AFTER STRING LIMIT ? BH NOTFOUND * NOT LOW ? NOT FOUND EX R6,CLC * EX CLC BE FOUND * YES ? GO TO END LR R9,R1 * SAVE TRT ADDRESS SR R1,R3 * R1 = TRT ADVANCE IN BYTES SR R5,R1 * HOW MUCH LEFT CR R5,R6 * LEFT < SUBTRING LENGTH BL NOTFOUND * YES ? NOT FOUND LTR R5,R5 * BZ NOTFOUND * LA R3,1(R9) * POINT NEXT CHAR B EXTRT *NOTFOUND DS ØH * LA R15,8 * B BRTRN *TOOLONG DS ØH * LA R15,12 * B BRTRN *FOUND DS ØH * XR R15,R15 *BRTRN DS ØH * L R13,4(R13) * L R14,12(R13) * LM R3,R12,32(R13) * MVI 12(R13),X'FF' * BR R14 *

Page 77: CICS Performance Toolkit

77© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

TRT TRT Ø(*-*,R3),TAB *CLC CLC Ø(*-*,R1),Ø(R4) *TAB DC 256X'ØØ' * END JHTRT

Xecto******************************************************************* THIS ROUTINE FREE & ALLOC DDNAME DCPMJN? IN CICS WHEN ?=T L F A* ACTIVATED BY RULE - CICSTDQ* AFTER THIS PROGRAM IS RUN - A NEW GENERATION OF CICS ARCHIVE* LOG IS CREATED - AND THE REPLACED LOG IS ARCHIVED INTO TAPE.****************************************************************

TRACE ON MAXCOMMAND 9999 TIMEOUT 9999 LOGON APPLID CICSOLIB SESSID KSØ1 IFVAR %VTAMRC EQ '48' GOTO CICS_DOWN CURSOR POS 1 8 IFSCREEN 'WELCOME TO CICS' GOTO SIGN_ON GETSCREEN*LABEL SIGN_ON CLEAR TYPE 'CESN USERID=MCPCTO,PS=%A1' ENTER CURSOR POS 1 11 IFSCREEN 'SIGN-ON IS COMPLETE' GOTO START_PROG GOTO SIGN_NOTOK*LABEL START_PROG SETVAR %DJN1 DATA 'DJNA' SETVAR %DJN2 DATA 'DJNF' SETVAR %DJN3 DATA 'DJNL' SETVAR %DJN4 DATA 'DJNT' SETVAR %NO_DJN DATA '4' SETVAR %DCPMJNX_STAT DATA 'FREE' GOTO NEXT_DJN*LABEL NEXT_DJN IFVAR %NO_DJN EQ 'Ø' GOTO END_PROG IFVAR %NO_DJN EQ '1' GOTO DJN1 IFVAR %NO_DJN EQ '2' GOTO DJN2 IFVAR %NO_DJN EQ '3' GOTO DJN3 IFVAR %NO_DJN EQ '4' GOTO DJN4*LABEL DJN1 SETVAR %N_D DATA 'DJNA'

Page 78: CICS Performance Toolkit

78 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

SETVAR %JN DATA 'JNA' GOTO TDQ*LABEL DJN2 SETVAR %N_D DATA 'DJNF' SETVAR %JN DATA 'JNF' GOTO TDQ*LABEL DJN3 SETVAR %N_D DATA 'DJNL' SETVAR %JN DATA 'JNL' GOTO TDQ*LABEL DJN4 SETVAR %N_D DATA 'DJNT' SETVAR %JN DATA 'JNT' GOTO TDQ*LABEL TDQ SETVAR %NO_DJN DATA '%NO_DJN %%MINUS 1' SETVAR %ACT DATA 'CLOSE' PFØ3 CLEAR TYPE 'CEMT S TDQ(%N_D) CL ' ENTER CURSOR POS 1 15 SETVAR %DJN SCREEN 1 12 4 CURSOR POS 23 14 IFSCREEN 'NORMAL' GOTO DO_ADYN GOTO TDQ_NOTOK*LABEL TDQ_NOTOK SHOUT TO TSO-SØ1Ø TEXT 'CTO - CICS TDQ %ACT FOR %DJN IS NOT NORMAL' SHOUT TO TSO-SØØ4 TEXT 'CTO - CICS TDQ %ACT FOR %DJN IS NOT NORMAL' GOTO END_PROG*LABEL DO_ADYN PFØ3 CLEAR TYPE 'ADYN ' ENTER CURSOR POS 9 1 IFSCREEN 'ENTER' GOTO DO_FREE GOTO DO_OPEN*LABEL DO_FREE CURSOR HOME TYPE 'FREE DDNAME(DCPM%JN) UNALLOC ' ENTER CURSOR POS 9 41

Page 79: CICS Performance Toolkit

79© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

IFSCREEN 'ØØØØ' GOTO DO_ALLOC SETVAR %DCPMJNX_STAT DATA 'FREE' GOTO RC_NOTOK*LABEL RC_NOTOK SHOUT TO TSO-SØ1Ø TEXT 'CTO - CICS FREE DCPM%JN NOT OK' IFVAR %DCPMJNX_STAT EQ 'ALLOC' GOTO DO_OPEN*LABEL DO_ALLOC PFØ3 CLEAR TYPE 'ALLOC DDNAME(DCPM%JN) SYSOUT(M) ' ENTER CURSOR POS 9 41 IFSCREEN 'ØØØØ' GOTO DO_OPEN SETVAR %DCPMJNX_STAT DATA 'ALLOC' GOTO RC_NOTOK*LABEL DO_OPEN CURSOR HOME SETVAR %NUL DATA ' ' TYPE '%NUL' ENTER PFØ3 CLEAR* CURSOR HOME TYPE 'CEMT S TDQ(%N_D) OP ' ENTER CURSOR POS 23 14 IFSCREEN 'NORMAL' GOTO NEXT_DJN SETVAR %ACT DATA 'OPEN' GOTO TDQ_NOTOK*LABEL SIGN_NOTOK SHOUT TO TSO-SØ1Ø TEXT 'cics sign-on failed' GOTO END_PROG*LABEL CICS_DOWN SETOGLB %%DOWN%A2 = 48*LABEL END_PROG PFØ3 CLEAR TYPE 'LOGOFF ' ENTER LOGOFF END

Uri CohenCICS Systems Programmer (Israel) © Xephon 2002

Page 80: CICS Performance Toolkit

80 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Buried treasure in the CICS TRACE TABLE

INTRODUCTION

Each new release of CICS will contain a collection of additional traceentries, introduced to provide diagnostic information on new componentsof the product added by the release. As CICS Transaction Server continuesto evolve, so does the variety and content of the trace data associated withCICS.

There are a number of very useful CICS trace entries that can be used toprovide a great deal of helpful information, provided you know what tolook for within the (potentially) vast amount of trace data that CICS cangenerate. This article highlights a number of such trace entries, explainingwhen they were introduced, what they can offer you, and the trace optionsrequired to generate them.

A BRIEF BACKGROUND TO CICS TRACING

CICS trace is the primary tool for application and system debugging. It isa series of data entries, written in chronological order, that document thestate of various system resources and activities. It shows the flow ofactivity of tasks on the CICS system, running under the quasi-reentrant(QR) TCB and other TCBs available for use within CICS TransactionServer. While originally intended for CICS system debugging, a subset ofthe trace entries can be useful for debugging application problems too, aswill be explained later in the article.

CICS trace may be directed to the internal CICS trace table, which is awraparound area of storage above the 16MB line in the CICS address space.This can then be viewed in both transaction and system dumps, to see theseries of events leading up to the event that resulted in the dump beingrequested. The size of this trace table is controlled by the TRTABSZ systeminitialization parameter, and by the ‘Internal Trace Table Size’ option onthe CETR main panel (for more details on CETR, see below).

Page 81: CICS Performance Toolkit

81© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

In addition, trace entries can also be directed to the auxiliary tracedestination, which is one or two CICS-managed BSAM datasets. Theseprovide a larger repository for trace data than the internal CICS trace table,and can be used to record a longer period of system activity. The I/O activityneeded to support auxiliary tracing means that this option has more impactupon CICS system performance than just using internal CICS tracing.

CICS also supports tracing to GTF. This technique can be useful whendiagnosing problems that have a flow of events across several interconnectedaddress spaces, such as between CICS and DBCTL.

CICS/ESA Version 3 introduced the CETR transaction to complement therestructuring of CICS trace control into a domain with that version of theproduct. CETR allows the user to dynamically control many aspects ofCICS trace activity, including switching on and off internal and auxiliarytracing, setting the level of component tracing for the various functionalareas within CICS, and using selective tracing for specific transactions andterminals. Such selective tracing can be very useful when debugging CICSapplications – by providing detailed trace information for a specificprogram environment.

Note that the CICS internal trace table, auxiliary trace, and GTF tracedestinations can wrap. CETR provides the means of controlling whetherauxiliary tracing wraps by the ‘Auxiliary Switch Status’ option. This canspecify NO, NEXT, and ALL. NO means that only the current BSAMdataset can be used. NEXT means that having filled the current dataset,CICS will switch to use the second dataset. ALL means that CICS willautomatically switch between the two datasets as each one fills. ALLtherefore allows for the overwriting of old trace data from earlier in thetrace run.

CICS provides a batch utility program to format the auxiliary trace data.The name of the program is CICS release-specific – its suffix is the CICSrelease number. Therefore, in CICS/ESA 4.1.0 the program is DFHTU410;in CICS Transaction Server 1.3 (containing the CICS component CICS/ESA 5.3.0) it is DFHTU530. The utility program has a number of optionsthat can be used to selectively filter specific trace entries when formattingthe auxiliary trace data – these include filtering by task number, transactionidentifier, trace entry number, etc. The most commonly used options when

Page 82: CICS Performance Toolkit

82 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

using the utility are to control the level of detail to be returned in theformatted trace. The options are ABBREV (for abbreviated), SHORT, andFULL. Abbreviated trace is the bare minimum of data for every trace entry,showing the flow of events through CICS and the commands issued byapplications. It is useful when trying to establish a ‘big picture’ of what ishappening at a given point during the CICS run. Short trace is similar toabbreviated trace, but also provides useful diagnostic information such asthe time when the trace entry was issued, and time duration between thisand the preceding trace entry. Full trace provides all this information, plusup to seven data items that can be used to trace information such asparameter lists, names of resources, control blocks, and response andreason codes.

Full trace is useful when a particular series of events has been isolated, anda problem needs to be analysed at a trace entry by trace entry level, seeingexactly what parameters (and their values) were being referenced at thatpoint in time.

EIP LEVEL 1 AND LEVEL 2 TRACES

CICS trace is a powerful tool for debugging application program problems.By following the series of EXEC CICS requests issued from applications,programmers can track the flow of execution of a new application suiteunder development. In this way, CICS trace can be used in tandem withCEDF to diagnose and debug problems encountered during the applicationdevelopment cycle. One possible scenario would be to use CEDF whenfunctionally verifying (ie unit testing) applications, and using CICS traceto analyse system testing of the programs, when multiple tasks areexecuting them in tandem.

Prior to CICS/ESA 4.1.0, the trace entries that were of most use inunderstanding the flow of EXEC CICS requests being issued by applicationprograms were those issued on entry to, and exit from, the CICS EXECInterface Program (DFHEIP). DFHEIP is the entry point into CICS froman application – it is branched to by the command level stub that is link-edited to the program, which is itself branched to as part of the translatedEXEC CICS command being executed within the application. DFHEIPthen vectors into one of a number of command level stubs for the varioustypes of EXEC CICS request. Eventually, once CICS has processed the

Page 83: CICS Performance Toolkit

83© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

command, control will return to the application via DFHEIP once more.

DFHEIP has a pair of trace points at entry to and exit from the module –these have the trace point ID of AP 00E1, where AP denotes the ApplicationDomain, the component of CICS that contains the remainder ofunreconstructed code. (Starting with CICS/ESA 3.1.0, as areas of CICShave been rewritten into better designed, more encapsulated pieces offunction, they have been restructured into their own domains. Examplesinclude the storage manager domain, loader domain, program managerdomain, etc.)

CICS/ESA 4.1.0 introduced another pair of DFHEIP trace entries. Theseare EI level 2 trace points, meaning that they are issued only if CICS haslevel 2 trace function set for the EI trace component, as controlled by theCETR transaction or SIT parameter. These new trace points are AP E160and AP E161 (on entry and exit respectively). Note: the traditional AP00E1 trace points are EI level 1 traces.

EI level 2 trace points have four data items associated with them. Item 1is a concatenation of addresses and argument values, used by CICS whenconstructing the trace entry for the EXEC CICS command. Item 2 is thelist of addresses of the command-level parameters built by the CICStranslator for the EXEC CICS request. The final parameter is denoted bythe high order bit (X’80000000') set on in the address. Item 3 is the addressof this parameter list. Item 4 is the system EIB control block.

EI level 2 tracing is a very powerful tool for problem diagnosis of CICSapplications. Where the AP 00E1 trace points show the flow of control foran application, and give a limited idea of the nature of the EXEC CICSrequests, the EI level 2 trace points break down the actual requeststhemselves. In effect they are providing part of the data available underCEDF, but without the need to step through the application code screen byscreen.

Application programmers can see exactly what values are being manipulatedby their applications without having to step through the code on-line viaCEDF. This can be useful in environments where, for example, CEDFusage cannot be tolerated for some reason, or in the case when a numberof tasks are to be executed in a simulated production run.

Page 84: CICS Performance Toolkit

84 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

An important point to note about EI level 2 trace interpretation is that thevalue of input and output fields passed on the request cannot be tracedunless the length of the fields is also passed. An example of this is whentracing a file control request against a KSDS file. The value of the key fieldpassed on the request (the ridfld) cannot be traced unless KEYLENGTHwas specified on the EXEC CICS request. This is because the traceformatter has no idea how long the file’s keylength is, and cannot arbitrarilydisplay a certain number of bytes of data starting at the address where thekey value is held. Another example of this is when tracing an EXEC CICSSEND MAP command with a FROM area, but no associated length value.

ABEND AEYD DIAGNOSTIC TRACE ENTRIES

CICS command protection was a function introduced in CICS/ESA 4.1.0.It is controlled by the SIT parameter CMDPROT. If set to YES, thisinstructs the CICS Exec Interface Program, DFHEIP, to perform verificationchecks on any output field addresses before allowing an EXEC CICScommand to continue.

This verification is to prevent an application passing CICS an invalidaddress as the target for data returned from CICS to the application. Anexample of such an output field would be the one passed as the INTO areaon an EXEC CICS READ command against a VSAM file. If CICS doesnot verify that such output field addresses are valid (ie the application hasthe right to update them) then it can unwittingly corrupt storage belongingto parts of the CICS address space that are not validly accessible by theapplication. Since CICS runs in storage protection key of 8 (‘CICS key’),it has the ability to update storage in both storage protection keys 8 and 9(key 9 is ‘User key’ storage). As such, there is the potential for anapplication to use CICS as a ‘hired gun’ and update pages of storage thatthe application could not directly touch by itself. Command protection istherefore also sometimes referred to as hired gun checking. This is becauseit prevents CICS being used by the task issuing an EXEC CICS request toindirectly cause possible harm to storage belonging to other tasks in thesystem.

If DFHEIP detects that an EXEC CICS parameter for an output fieldaddresses storage that is not available to the task that issued the request,

Page 85: CICS Performance Toolkit

85© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

it generates a program check. This is captured by the CICS System RecoveryProgram (DFHSRP). DFHSRP will issue a series of diagnostics such asexception trace entries, an abend AEYD, and a transaction dump.

Figure 1 shows examples of the (edited) trace information seen when aninvalid output parameter address is detected by CICS command protectionchecking. The series of abbreviated trace entries at the top shows that aCICS application has issued a number of EXEC CICS commands,culminating in an EXEC CICS READ to CICS file control. In this example,the address passed for the INTO area on the request is 00000000 (ie ‘low-core’, the start of the Prefix SaveArea or PSA, in the first page of everyaddress space in MVS). A CICS task has no right to modify storage in thePSA (nor indeed does CICS for that matter) – it is used specifically by thehardware to represent processor information such as interrupt routineaddresses for the operating system. As such, any attempt to store into thispage would fail with an 0C4 protection exception anyway. However, sinceCICS command protection was activated, CICS was able to detect that the

ØØØ233 1 AP ØØE1 EIP EXIT ASSIGN OKØØØ233 1 AP ØØE1 EIP ENTRY HANDLE-ABEND

ØØØ233 1 AP ØØE1 EIP EXIT HANDLE-ABEND OK

ØØØ233 1 AP ØØE1 EIP ENTRY READ

ØØØ233 1 AP 1942 APLI *EXC* Program-Check

ØØØ233 1 AP Ø79Ø SRP *EXC* PROGRAM_CHECK

ØØØ233 1 AP Ø779 SRP *EXC* ABEND_AEYD

AP Ø779 SRP *EXC* - ABEND_AEYD PROGRAM(U392ØPRG) FUNCTION(Ø6Ø2)

PARAMETER_ADDRESS(ØØØØØØØØ)

Figure 1: Trace entries showing an AEYD abend

Page 86: CICS Performance Toolkit

86 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

INTO field contained an invalid address and so prevent the attempt to storeVSAM record data there before the protection exception 0C4 could occur.

When CICS detected the invalid output parameter, it forced a programcheck. This resulted in the exception traces AP 1942 and AP 0790 beingissued. DFHSRP then determined that the program check was as a resultof command protection validation, and so issued the further exceptiontrace entry AP 0779. The full trace entry for this shows the address of thebad output area parameter as passed on the EXEC CICS READ command– in this example it is 00000000.

The example shows a bad output field address on a command that would,if left to completion, not have been able to be updated by CICS since it isin protected storage in low-core. However, the address could instead havebeen a validly accessible one within part of the CICS address space for apage of storage owned by another task. If command protection had notverified that such an address was out of bounds to the task asking for it tobe updated by CICS, storage corruption of this area by CICS on behalf ofthe running task would have occurred. CICS would indeed have been ahired gun for the task.

Command protection can be used in tandem with EI level 2 trace to displayall the output fields passed by an application, if further investigation of theprogram is required.

CICS/DB2 ADAPTOR TRACE ENTRIES

CICS Transaction Server Release 1.2 included a rewritten CICS/DB2Adaptor. This is the code that interfaces between CICS and DB2 – it runsas a Task Related User Exit (TRUE) to the CICS external ResourceManager Interface (RMI).

Prior to CICS Transaction Server Release 1.2, the CICS/DB2 Adaptor wasowned by the DB2 Development Laboratories in Santa Teresa, California,although the code itself was shipped as part of the CICS product deliverytape. When the Adaptor was transferred to CICS Development in Hursley,the opportunity was taken to restructure the code and improve a numberof its components. Part of this restructure involved improvements to the

Page 87: CICS Performance Toolkit

87© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

tracing techniques used by the Adaptor modules. The old CICS/DB2Adaptor had used user trace entries to record the flow of events throughits code. The restructured Adaptor in CICS Transaction Server Release 1.2issues new unique trace entries from the Application Domain (AP) tracepoint range. This is one example of the ways in which the new Adaptor codeis more formally integrated into CICS Transaction Server than the oldAdaptor in CICS/ESA 4.1.0.

If an exceptional condition occurred whilst running under the old-styleAdaptor, a pair of user trace entries would be issued to document the fact.The end of data item 1 would contain *EXC* in both cases, to indicate thatthis was for an exceptional condition. Data item 2 in the first of the traceentries would contain the DB2 reason code for the failure, in its lastfullword. Data item 2 in the second of the trace entries would contain thetransaction identifier of the executing task in its first fullword.

With the restructure of the CICS/DB2 Adaptor, the opportunity to exploitconventional CICS tracing techniques allowed for the use of standardexception trace entries to be issued in exceptional conditions.

An example of such an exception condition is discussed below. A failurecondition might occur as the result of an application issuing an EXEC SQLcommand.

The resulting AP 318E exception trace entry issued from the Adaptor hasfour data items.

Data item 1 is the CICS kernel error data for the failure. This includes theAbend code for the failure (AD2U) at offset 4. It also shows the name ofthe Adaptor program in control when the abend was issued – DFHD2EX1at offset X’10'.

Data item 2 is the LOT control block, DFHD2LOT. The LOT (or Life OfTask) control block represents the unit of work that is executing the seriesof commands.

Data item 3 is the RCT entry being used by the request. This is mapped bythe DSECT DFHD2RCT.

Data item 4 is the CSUB control block, DFHD2CSB. The CSUB (or CICSsubtask) control block represents the TCB that is being used to process the

Page 88: CICS Performance Toolkit

88 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

particular request to DB2. The CICS/DB2 Adaptor cannot use the QR TCBto process requests in DB2 since this would prevent sub-dispatching ofother tasks by the CICS Dispatcher under this TCB while a request wasbeing executed within DB2 itself. Hence a series of TCBs are used tosubtask the DB2 requests issued by CICS applications. This is a standardtechnique used by other RMI TRUEs such as the DBCTL Adaptor.

The CSUB control block contains a very useful feature, which can beanalysed from the trace entry. An imbedded ‘trace table’ within the controlblock shows the last (decimal) ten operations carried out on that subtask.These begin at offset X’1E0', and each entry is X’10' bytes long. They aredelimited by the eyecatchers ‘>>Trace Start >>’ and ‘<<Trace End <<’.

Each X’10' byte entry contains a fullword hexadecimal counter, a fullwordcharacter string to identify the type of request, and then sections for the DB2response and reason codes from the request. Note that APAR PQ30799 /PTFs UQ36758 and UQ36759 have enhanced the CSUB trace table toinclude the task number of the application. This is stored in packed decimalformat in the second, third, and fourth bytes of each entry’s first fullword,leaving the first byte of the entry for the monatomically increasinghexadecimal counter. Since there are only ten slots within the imbeddedtable, there was no compelling reason for the counter to use a fullword ofstorage – a single byte is more than sufficient to ensure a uniquelyincreasing range throughout the ten entries. Note: PTFs UQ36758 andUQ36759 enhanced CICS Transaction Server Release 1.2 and Release 1.3respectively.

The DFHD2CSB is an internal trace table that can be seen at the end of thecontrol block. Note: the example discussed predates the application ofAPAR PQ30799, so that the task numbers are not stored within the firstfullword of each entry, and the counter field is still a fullword value. Tolocate the most recent entry into the trace table, locate the entry with thehighest counter value. In our example it is the entry with a counter of0000000D, at offset X’200' into the control block.

The possible character strings at offset 4 into the entries, and theirmeanings, are given below:

• ABRT – abort request

Page 89: CICS Performance Toolkit

89© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

• API – SQL or IFI request

• COMM – commit request

• CTHD – create thread request

• ERRH – error handler request

• IDEN – identify request

• PREP – prepare request

• PSGN – partial signon request

• SIGN – full sign-on request

• SYNC – single phase request

• TERM – terminate thread request.

In our example trace entry, error handling has been driven as the result ofa previous authorization failure (frb reason code 00F30034).

Understanding this internal trace table allows you to track the most recentrequests to have been executed under this subtask, and so aid in analysisof throughput for CICS/DB2 requests, and help when dealing withproblem determination issues.

Note, in addition to being traced for exception trace entries as describedabove, the CSUB will also be traced on normal trace entries from the newCICS/DB2 Adaptor if the RI trace component is set to 1-2. RI is the tracecomponent for the CICS RMI (Resource Manager Interface). This can beuseful when examining situations that do not result in exceptional conditionsoccurring.

TRACE ENTRY SUPPRESSION

Most events in life involve a trade-off of some kind, and CICS tracerecording is no exception.

In order to help reduce performance overheads, some users will run theirproduction CICS systems with limited or no CICS trace recording active.This is advantageous to them until an unexpected situation occurs that

Page 90: CICS Performance Toolkit

90 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

requires trace data for its problem resolution.

Another reason why CICS trace entries may not be recorded is suppressionby one of a number of different monitoring packages.

While CICS does generate unsolicited exception trace entries whenunexpected (exceptional) conditions occur, which are recorded regardlessof trace suppression, these in themselves may not be sufficient to totallyisolate and resolve a particular problem.

When examining the data in CICS trace (either from the internal trace tableor from auxiliary trace) it is important to be aware of the scope of tracesuppression on the CICS system.

FURTHER READING

The CICS bibliography provides a detailed overview of every trace entryissued by CICS. However, the particular manual that lists the trace entriesvaries depending upon what release or version of the CICS product is beingused.

For CICS/ESA 4.1.0, the trace entries are documented in the DiagnosisHandbook.

For CICS Transaction Server Release 1.1 and Release 1.2, they aredocumented in the User’s Handbook. For CICS Transaction ServerRelease 1.3, the volume of trace entries has grown sufficiently to warranta complete manual; this is entitled CICS Trace Entries.

SUMMARY AND CONCLUSIONS

I hope that this article has helped explain the background to a number ofuseful features of the CICS trace table. Readers who wish to discuss thematerial in this article further may contact me via e-mail, [email protected]. CICS is a registered trademark of InternationalBusiness Machines Corporation.

Andy WrightCICS Change TeamIBM (UK) © IBM 2002

Page 91: CICS Performance Toolkit

91© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Collecting DB2ENTRY statistics and tuning theCICS attachment facility

THE PROBLEM

In our installation, the production CICS Transaction Server experiencedcontention and the TCBLIMIT parameter reached its maximum value. TheCICS TS experienced poor response times in spite of there being only a fewtransactions active. The only way to overcome the problem was to de-activate and then re-activate the CICS Transaction Server.

THE SOLUTION

We solved the problem by modifying the values of TCBLIMIT,THREADLIMIT, and MAXOPENTCBS, and reassigning the dedicatedthreads in the order in which they were to be used again (REUSED) forseveral transactions. In this way, the CICS Transaction Server regionassigns fewer TCBs, consumes less CPU, and improves the response time.

The transaction IDBE helped greatly in determining the appropriate valuesfor the CICS parameters.

The transaction IDBE executes the COBOL II program STPEP006, whichlooks at DB2ENTRYs and shows the statistics CICS DB2 has collected.

IDBE OPTION

Syntax:

OPTION = CONN | DB2E | DISP | PLAN

where:

• IDBE CONN – for displaying DB2CONN statistics.

• IDBE DB2E – for displaying DB2ENTRY name statistics.

• IDBE DISP – for browsing DB2ENTRY names GE #Calls

Page 92: CICS Performance Toolkit

92 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

• IDBE PLAN – for browsing DB2ENTRYs names EQUAL PlanName.

For example, to know the statistics of DB2CONN type:

IDBE CONN

This transaction will be useful to find suitable values for TCBLIMIT andTHREADLIMIT. Look at the values of the TCB statistics. If the value of#PEAK or #CURRENT has reached the value of #MAXIMO and if CICSTS is slow, it’s because the value of TCBLIMIT is not a suitable one. In ahost (9672-R56 with 545 MIPS) the value is 66 per CICS transactionserver. Otherwise, if the value of FREE TCBs is approximated to#MAXIMO, the statistics must be reviewed to re-assign the threads.

To find the statistics for a DB2ENTRY name, type:

IDBE DB2E db2entryname

This transaction will be useful to show all the data of a DB2ENTRY. Lookat the data and determine whether the transaction needs to be ModifiedPRIority, PROtectnum, THREADLimit, or THREADWait.

To make a listing of DB2ENTRYs that have been done, type:

IDBE DISP

If you want to, you can select the name of the starting DB2ENTRY and/or the number of calls that you want to view. You should modify the firstline and press Enter:

IDBE DISP db2entry>=ØØØØØØØ (Default)

This transaction is useful to find the transactions that deserve to havethreads dedicated by the number of #CALLS, #REUSES, and W/O.

To find the DB2ENTRYs that have the same PLANNAME, type:

IDBE PLAN planname

This transaction is useful to put together the transactions that have aplanname in common, to minimize the number of DB2ENTRYs. Usewildcarding and dynamic plan selection where it’s relevant to combineappropriate transactions in an entry. Allow low use transactions to defaultto the pool.

Page 93: CICS Performance Toolkit

93© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

However, it should be noted that defining transaction IDs using wildcardcharacters removes the ability to collect CICS DB2 statistics on a pertransaction basis because statistics are collected for each DB2ENTRY,which will now represent a group of transactions.

This program works on Transaction Server Release 1.3 under OS/390Version 2.9.

STPEP006 SOURCE CODE

IDENTIFICATION DIVISION.PROGRAM-ID. STPEPØØ6.AUTHOR. JEFS.DATE-WRITTEN. ABR - Ø1.DATE-COMPILED. ABR - Ø1.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.77 UTIME PIC S9(15) COMP-3 VALUE +Ø.77 RESP1 PIC S9(Ø8) COMP.77 I PIC 9(Ø2) VALUE 1.77 W2R-CALLS PIC 9(Ø7) VALUE Ø.Ø1 MSG-ERROR. Ø2 MSG1 PIC X(8Ø) VALUE SPACES. Ø2 MSG2 PIC X(8Ø) VALUE SPACES. Ø2 MSG3 PIC X(8Ø) VALUE SPACES. Ø2 MSG4 PIC X(8Ø) VALUE SPACES. Ø2 MSG5 PIC X(8Ø) VALUE SPACES. Ø2 MSG6 PIC X(8Ø) VALUE SPACES. Ø2 MSG7 PIC X(8Ø) VALUE SPACES. Ø2 MSG8 PIC X(8Ø) VALUE SPACES. Ø2 MSG9 PIC X(8Ø) VALUE SPACES.Ø1 MSG-PANTALLA-DB2ENTRY. Ø2 MS-TITU1. Ø4 FILLER PIC X(1Ø) VALUE 'IDBE DB2E '. Ø4 MSG-DB2ENTRY-NAME PIC X(Ø8) VALUE SPACES. Ø4 FILLER PIC X(62) VALUE SPACES. Ø2 MS-TITU2. Ø4 FILLER PIC X(Ø9) VALUE 'Applid : '. Ø4 APPLID PIC X(Ø8)BBBBBB VALUE SPACES. Ø4 FILLER PIC X(34) VALUE 'Display DB2Entry Statistics Online'. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(Ø7) VALUE 'Date : '. Ø4 PRINT-DATE PIC X(Ø8)BB VALUE SPACES. Ø2 MS-TITU3. Ø4 FILLER PIC X(Ø9) VALUE 'Sysid : '.

Page 94: CICS Performance Toolkit

94 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Ø4 SYSID PIC X(Ø4) VALUE SPACES. Ø4 FILLER PIC X(5Ø) VALUE SPACES. Ø4 FILLER PIC X(Ø7) VALUE 'Time : '. Ø4 PRINT-TIME PIC X(Ø8)BB VALUE SPACES. Ø2 MS-TITU4. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MS-TITU5. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(16) VALUE 'DB2 Entry Name: '. Ø4 M2R-DB2ENTRY-NAME PIC X(8)B VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'Plan Name : '. Ø4 M2R-PLAN-NAME PIC X(8). Ø4 FILLER PIC X(Ø8) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'ThreadWait: '. Ø4 M2R-THREADWAIT PIC X(4). Ø4 FILLER PIC X(Ø9) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MS-TITU6. Ø4 FILLER PIC X(Ø1) VALUE '+'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '+'. Ø2 MS-TITU7. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(12) VALUE 'Priority : '. Ø4 M2R-PRIORITY PIC X(Ø5). Ø4 FILLER PIC X(Ø8) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE '# Calls : '. Ø4 M2R-CALLS PIC Z,ZZZ,ZZ9. Ø4 FILLER PIC X(Ø7) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'Signons : '. Ø4 M2R-SIGNONS PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MS-TITU8. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(12) VALUE 'Aborts : '. Ø4 M2R-ABORTS PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'Single Pha: '. Ø4 M2R-SINGLE-PHASE PIC Z,ZZZ,ZZ9. Ø4 FILLER PIC X(Ø7) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE '# Reuses : '. Ø4 M2R-THREAD-REUSE PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MS-TITU9. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(12) VALUE 'Terminates: '.

Page 95: CICS Performance Toolkit

95© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Ø4 M2R-THREAD-TERM PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE '# W/O : '. Ø4 M2R-THREAD-WAIT-OR-OVERF PIC Z,ZZZ,ZZ9. Ø4 FILLER PIC X(Ø7) VALUE SPACES. Ø4 FILLER PIC X(19) VALUE SPACES. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MS-TITU1Ø. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(12) VALUE '# Current : '. Ø4 M2R-THREAD-CURRENT PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE '# Peak : '. Ø4 M2R-THREAD-HWM PIC Z,ZZZ,ZZ9. Ø4 FILLER PIC X(Ø7) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE '# Limit : '. Ø4 M2R-THREAD-LIMIT PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MS-TITU11. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(12) VALUE 'Prot.Curr : '. Ø4 M2R-PTHREAD-CURRENT PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'Prot.Peak : '. Ø4 M2R-PTHREAD-HWM PIC Z,ZZZ,ZZ9. Ø4 FILLER PIC X(Ø7) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'Prot.Limit: '. Ø4 M2R-PTHREAD-LIMIT PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MS-TITU12. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(12) VALUE 'Curr.Task : '. Ø4 M2R-TASK-CURRENT PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'Peak Task : '. Ø4 M2R-TASK-HWM PIC Z,ZZZ,ZZ9. Ø4 FILLER PIC X(Ø7) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'Total Task: '. Ø4 M2R-TASK-TOTAL PIC ZZZ,ZZ9. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MS-TITU13. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MS-TITU14. Ø4 FILLER PIC X(8Ø) VALUE SPACES.

Page 96: CICS Performance Toolkit

96 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Ø2 MS-TITU15. Ø4 FILLER PIC X(8Ø) VALUE SPACES. Ø2 MS-TITU16. Ø4 FILLER PIC X(2Ø) VALUE SPACES. Ø4 FILLER PIC X(36) VALUE 'CLEAR = EXIT ENTER = REFRESH'. Ø4 FILLER PIC X(24) VALUE SPACES.Ø1 MSG-PANTALLA-CONNECT. Ø2 MC-TITU1 PIC X(8Ø) VALUE 'IDBE CONN'. Ø2 MC-TITU2. Ø4 FILLER PIC X(Ø9) VALUE 'Applid : '. Ø4 C-APPLID PIC X(Ø8)BBBBBB VALUE SPACES. Ø4 FILLER PIC X(35) VALUE 'Display of DB2CONN Statistic Online'. Ø4 FILLER PIC X(Ø5) VALUE SPACES. Ø4 FILLER PIC X(Ø7) VALUE 'Date : '. Ø4 PRINC-DATE PIC X(Ø8)BB VALUE SPACES. Ø2 MC-TITU3. Ø4 FILLER PIC X(Ø9) VALUE 'Sysid : '. Ø4 C-SYSID PIC X(Ø4) VALUE SPACES. Ø4 FILLER PIC X(5Ø) VALUE SPACES. Ø4 FILLER PIC X(Ø7) VALUE 'Time : '. Ø4 PRINC-TIME PIC X(Ø8)BB VALUE SPACES. Ø2 MC-TITU4. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MC-TITU5. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(22) VALUE 'DB2 Connection name : '. Ø4 M2G-DB2CONN-NAME PIC X(8). Ø4 FILLER PIC X(Ø9) VALUE SPACES. Ø4 FILLER PIC X(12) VALUE 'DB2 Sysid : '. Ø4 M2G-DB2-ID PIC X(4). Ø4 FILLER PIC X(23) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU6. Ø4 FILLER PIC X(Ø1) VALUE '+'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '+'. Ø2 MC-TITU7. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(78) VALUE 'TCBS STATISTICS '. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU8. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(16) VALUE '# Maximo : '. Ø4 M2G-TCB-LIMIT PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(16) VALUE '# Current : '. Ø4 M2G-TCB-CURRENT PIC ZZZ,ZZ9BBB.

Page 97: CICS Performance Toolkit

97© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Ø4 FILLER PIC X(16) VALUE '# Peak : '. Ø4 M2G-TCB-HWM PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU9. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(16) VALUE '# Free : '. Ø4 M2G-TCB-FREE PIC ZZZ,ZZ9. Ø4 FILLER PIC X(55) VALUE SPACES. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU1Ø. Ø4 FILLER PIC X(Ø1) VALUE '+'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '+'. Ø2 MC-TITU11. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(78) VALUE 'DB2 CONNECTION POOL STATISTICS '. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU12. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(16) VALUE 'Plan name : '. Ø4 M2G-POOL-PLAN-NAME PIC X(8)BB VALUE SPACES. Ø4 FILLER PIC X(16) VALUE '# of CALLS : '. Ø4 M2G-POOL-CALLS PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(16) VALUE '# of Signons : '. Ø4 M2G-POOL-SIGNONS PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU13. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(16) VALUE '# of Commits : '. Ø4 M2G-POOL-COMMITS PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(16) VALUE '# of Reuses : '. Ø4 M2G-POOL-THREAD-REUSE PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(16) VALUE '# Terminates : '. Ø4 M2G-POOL-THREAD-TERM PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU14. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(16) VALUE '# of Waits : '. Ø4 M2G-POOL-THREAD-WAITS PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(16) VALUE '# Pool Limit : '. Ø4 M2G-POOL-THREAD-LIMIT PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(16) VALUE '# Current : '. Ø4 M2G-POOL-THREAD-CURRENT PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU15. Ø4 FILLER PIC X(Ø1) VALUE '+'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '+'. Ø2 MC-TITU16.

Page 98: CICS Performance Toolkit

98 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(78) VALUE 'DB2 CONNECTION DSNC COMMAND STATISTICS '. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU17. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(16) VALUE '# Calls : '. Ø4 M2G-DSNC-COMMAND-CALLS PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(16) VALUE '# Maximo : '. Ø4 M2G-COMMAND-THREAD-LIMIT PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(16) VALUE '# Peak : '. Ø4 M2G-COMMAND-THREAD-HWM PIC ZZZ,ZZ9BBB. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MC-TITU18. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MC-TITU19. Ø4 FILLER PIC X(8Ø) VALUE SPACES. Ø2 MC-TITU2Ø. Ø4 FILLER PIC X(8Ø) VALUE SPACES. Ø2 MC-TITU21. Ø4 FILLER PIC X(2Ø) VALUE SPACES. Ø4 FILLER PIC X(36) VALUE 'CLEAR = EXIT ENTER = REFRESH'. Ø4 FILLER PIC X(24) VALUE SPACES.Ø1 MSG-PANTALLA-DISPLAY. Ø2 MD-TITU1. Ø4 FILLER PIC X(1Ø) VALUE 'IDBE DISP '. Ø4 DIS-DB2ENTRY-SF PIC X(Ø8) VALUE SPACES. Ø4 FILLER PIC X(Ø2) VALUE '>='. Ø4 DIS-N-CALLS PIC 9(Ø7) VALUE ZEROES. Ø4 FILLER PIC X(53) VALUE SPACES. Ø2 MD-TITU2. Ø4 FILLER PIC X(Ø9) VALUE 'Applid : '. Ø4 DIS-APPLID PIC X(Ø8)BBBBBB VALUE SPACES. Ø4 FILLER PIC X(34) VALUE 'Browse DB2Entrys Statistics Online'. Ø4 FILLER PIC X(Ø6) VALUE SPACES. Ø4 FILLER PIC X(Ø7) VALUE 'Date : '. Ø4 DIS-DATE PIC X(Ø8) VALUE SPACES. Ø4 FILLER PIC X(Ø2) VALUE SPACES. Ø2 MD-TITU3. Ø4 FILLER PIC X(Ø9) VALUE 'Sysid : '. Ø4 DIS-SYSID PIC X(Ø4) VALUE SPACES. Ø4 FILLER PIC X(5Ø) VALUE SPACES. Ø4 FILLER PIC X(Ø7) VALUE 'Time : '. Ø4 DIS-TIME PIC X(Ø8)BB VALUE SPACES. Ø2 MD-TITU4. Ø4 FILLER PIC X(Ø1) VALUE '*'.

Page 99: CICS Performance Toolkit

99© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MD-TITU5. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(48) VALUE 'DB2Entry PlanName # Calls # Reuses # Term.'. Ø4 FILLER PIC X(3Ø) VALUE ' W/O #Lim. #Peak #Curr.'. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MD-TITU6. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MD-TITU7 OCCURS 16 TIMES. Ø4 MD-TITUS. Ø6 FILLER PIC X(Ø1) VALUE '|'. Ø6 DIS-DB2ENTRY-NAME PIC X(8)BB VALUE SPACES. Ø6 DIS-PLAN-NAME PIC X(8)BB VALUE SPACES. Ø6 DIS-CALLS PIC Z,ZZZ,ZZ9BBB. Ø6 DIS-THREAD-REUSE PIC ZZZ,ZZ9BB. Ø6 DIS-THREAD-TERM PIC ZZZ,ZZ9BB. Ø6 DIS-THREAD-WAIT PIC ZZ,ZZ9BB. Ø6 DIS-THREAD-LIMIT PIC Z,ZZ9BB. Ø6 DIS-THREAD-HWM PIC Z,ZZ9BBB. Ø6 DIS-THREAD-CURRENT PIC Z,ZZ9. Ø6 FILLER PIC X(Ø1) VALUE '|'. Ø4 MD-TITUR REDEFINES MD-TITUS. Ø6 DIS-TITUR PIC X(8Ø). Ø2 MD-TITU23. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MD-TITU24. Ø4 FILLER PIC X(2Ø) VALUE SPACES. Ø4 FILLER PIC X(36) VALUE 'CLEAR = Exit ENTER = Foward '. Ø4 FILLER PIC X(24) VALUE SPACES.Ø1 MSG-PANTALLA-PLAN. Ø2 MP-TITU1. Ø4 FILLER PIC X(1Ø) VALUE 'IDBE PLAN='. Ø4 PLA-PLAN-NAME PIC X(Ø8)B VALUE SPACES. Ø4 PLA-DB2ENTRY-SF PIC X(Ø8) VALUE SPACES. Ø4 FILLER PIC X(53) VALUE SPACES. Ø2 MP-TITU2. Ø4 FILLER PIC X(Ø9) VALUE 'Applid : '. Ø4 PLA-APPLID PIC X(Ø8)BBBBBB VALUE SPACES. Ø4 FILLER PIC X(35) VALUE 'Browse DB2Entrys with same PlanName'. Ø4 FILLER PIC X(Ø5) VALUE SPACES. Ø4 FILLER PIC X(Ø7) VALUE 'Date : '.

Page 100: CICS Performance Toolkit

100 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Ø4 PLA-DATE PIC X(Ø8)BB VALUE SPACES. Ø2 MP-TITU3. Ø4 FILLER PIC X(Ø9) VALUE 'Sysid : '. Ø4 PLA-SYSID PIC X(Ø4) VALUE SPACES. Ø4 FILLER PIC X(5Ø) VALUE SPACES. Ø4 FILLER PIC X(Ø7) VALUE 'Time : '. Ø4 PLA-TIME PIC X(Ø8)BB VALUE SPACES. Ø2 MP-TITU4. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MP-TITU5. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø4 FILLER PIC X(48) VALUE 'DB2Entry ThrWait Priority # Calls # Reuses'. Ø4 FILLER PIC X(3Ø) VALUE ' # Term W/O Total-Task'. Ø4 FILLER PIC X(Ø1) VALUE '|'. Ø2 MP-TITU6. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MP-TITU7 OCCURS 16 TIMES. Ø4 MP-TITUS. Ø6 FILLER PIC X(Ø1) VALUE '|'. Ø6 PLA-DB2ENTRY-NAME PIC X(8)BBBB VALUE SPACES. Ø6 PLA-THREADWAIT PIC X(4)BBBBB VALUE SPACES. Ø6 PLA-PRIORITY PIC X(5)BBB VALUE SPACES. Ø6 PLA-CALLS PIC Z,ZZZ,ZZ9BBB. Ø6 PLA-THREAD-REUSE PIC ZZZ,ZZ9BB. Ø6 PLA-THREAD-TERM PIC ZZZ,ZZ9BB. Ø6 PLA-THREAD-WAIT PIC ZZ,ZZ9BBBB. Ø6 PLA-TASK-TOTAL PIC Z,ZZZ,ZZ9. Ø6 FILLER PIC X(Ø1) VALUE '|'. Ø4 MP-TITUR REDEFINES MP-TITUS. Ø6 PLA-TITUR PIC X(8Ø). Ø2 MP-TITU23. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø4 FILLER PIC X(78) VALUE ALL '='. Ø4 FILLER PIC X(Ø1) VALUE '*'. Ø2 MP-TITU24. Ø4 FILLER PIC X(2Ø) VALUE SPACES. Ø4 FILLER PIC X(36) VALUE 'CLEAR = Exit ENTER = Foward '. Ø4 FILLER PIC X(24) VALUE SPACES.Ø1 DATOS-INPUT. Ø2 FILLER PIC X(Ø5). Ø2 DAT-DB2ENTRY-FUNC PIC X(Ø4). Ø2 FILLER PIC X(Ø1). Ø2 DAT-DB2ENTRY-NAME PIC X(Ø8) VALUE SPACES.

Page 101: CICS Performance Toolkit

101© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Ø2 DAT-DISPLAY. Ø4 FILLER PIC X(Ø2). Ø4 DAT-N-CALLS PIC 9(Ø7). Ø2 DAT-PLAN REDEFINES DAT-DISPLAY. Ø4 FILLER PIC X. Ø4 DAT-DB2ENTRY-SF PIC X(Ø8). LINKAGE SECTION.*----------------**COPY DFHD2GDS.*CICS/DB2CONN STATISTICS (GLOBAL)Ø1 DFHD2GDS SYNCHRONIZED. Ø3 D2GLEN PIC S9(4) COMP. Ø3 D2GID PIC XX. 88 D2GIDE VALUE ' #'. Ø3 D2GDVERS PIC X. 88 D2GVERS VALUE '?'. Ø3 FILLER PIC XXX. Ø3 D2G-GLOBAL. Ø5 D2G-DB2CONN-NAME PIC X(8). Ø5 D2G-DB2-ID PIC X(4). Ø5 D2G-DB2-RELEASE PIC X(4). Ø5 D2G-CONNECT-TIME-GMT PIC X(8). Ø5 D2G-CONNECT-TIME-LOCAL PIC X(8). Ø5 D2G-DISCONNECT-TIME-GMT PIC X(8). Ø5 D2G-DISCONNECT-TIME-LOCAL PIC X(8). Ø5 D2G-TCB-LIMIT PIC S9(8) COMP. Ø5 D2G-TCB-CURRENT PIC S9(8) COMP. Ø5 D2G-TCB-HWM PIC S9(8) COMP. Ø5 D2G-TCB-FREE PIC S9(8) COMP. Ø5 D2G-TCB-READYQ-CURRENT PIC S9(8) COMP. Ø5 D2G-TCB-READYQ-HWM PIC S9(8) COMP. Ø5 FILLER PIC X(4Ø). Ø3 D2G-POOL. Ø5 D2G-POOL-PLAN-NAME PIC X(8). Ø5 D2G-POOL-PLANEXIT-NAME PIC X(8). Ø5 D2G-POOL-AUTHID PIC X(8). Ø5 D2G-POOL-AUTHTYPE PIC X. 88 D2G-POOL-AUTHTYPE-NA VALUE ' '. 88 D2G-POOL-AUTHTYPE-USERID VALUE '?'. 88 D2G-POOL-AUTHTYPE-OPID VALUE '?'. 88 D2G-POOL-AUTHTYPE-GROUP VALUE '?'. 88 D2G-POOL-AUTHTYPE-SIGNID VALUE '?'. 88 D2G-POOL-AUTHTYPE-TERM VALUE '?'. 88 D2G-POOL-AUTHTYPE-TXID VALUE '?'. Ø5 D2G-POOL-ACCOUNTREC PIC X. 88 D2G-POOL-ACCOUNTREC-NONE VALUE '?'. 88 D2G-POOL-ACCOUNTREC-TXID VALUE '?'. 88 D2G-POOL-ACCOUNTREC-TASK VALUE '?'. 88 D2G-POOL-ACCOUNTREC-UOW VALUE '?'. Ø5 D2G-POOL-THREADWAIT PIC X.

Page 102: CICS Performance Toolkit

102 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

88 D2G-THREADWAIT-YES VALUE '?'. 88 D2G-THREADWAIT-NO VALUE '?'. Ø5 D2G-POOL-PRIORITY PIC X. 88 D2G-POOL-PRIORITY-HIGH VALUE '?'. 88 D2G-POOL-PRIORITY-EQUAL VALUE '?'. 88 D2G-POOL-PRIORITY-LOW VALUE '?'. Ø5 D2G-POOL-CALLS PIC S9(8) COMP. Ø5 D2G-POOL-SIGNONS PIC S9(8) COMP. Ø5 D2G-POOL-COMMITS PIC S9(8) COMP. Ø5 D2G-POOL-ABORTS PIC S9(8) COMP. Ø5 D2G-POOL-SINGLE-PHASE PIC S9(8) COMP. Ø5 D2G-POOL-THREAD-REUSE PIC S9(8) COMP. Ø5 D2G-POOL-THREAD-TERM PIC S9(8) COMP. Ø5 D2G-POOL-THREAD-WAITS PIC S9(8) COMP. Ø5 D2G-POOL-THREAD-LIMIT PIC S9(8) COMP. Ø5 D2G-POOL-THREAD-CURRENT PIC S9(8) COMP. Ø5 D2G-POOL-THREAD-HWM PIC S9(8) COMP. Ø5 D2G-POOL-TASK-CURRENT PIC S9(8) COMP. Ø5 D2G-POOL-TASK-HWM PIC S9(8) COMP. Ø5 D2G-POOL-TASK-TOTAL PIC S9(8) COMP. Ø5 D2G-POOL-READYQ-CURRENT PIC S9(8) COMP. Ø5 D2G-POOL-READYQ-HWM PIC S9(8) COMP. Ø5 FILLER PIC X(28). Ø3 D2G-COMMAND. Ø5 D2G-COMD-AUTHID PIC X(8). Ø5 D2G-COMD-AUTHTYPE PIC X. 88 D2G-COMD-AUTHTYPE-NA VALUE ' '. 88 D2G-COMD-AUTHTYPE-USERID VALUE '?'. 88 D2G-COMD-AUTHTYPE-OPID VALUE '?'. 88 D2G-COMD-AUTHTYPE-GROUP VALUE '?'. 88 D2G-COMD-AUTHTYPE-SIGNID VALUE '?'. 88 D2G-COMD-AUTHTYPE-TERM VALUE '?'. 88 D2G-COMD-AUTHTYPE-TXID VALUE '?'. Ø5 FILLER PIC XXX. Ø5 D2G-DSNC-COMMAND-CALLS PIC S9(8) COMP. Ø5 D2G-COMMAND-SIGNONS PIC S9(8) COMP. Ø5 D2G-COMMAND-THREAD-TERM PIC S9(8) COMP. Ø5 D2G-COMMAND-THREAD-OVERFLOW PIC S9(8) COMP. Ø5 D2G-COMMAND-THREAD-LIMIT PIC S9(8) COMP. Ø5 D2G-COMMAND-THREAD-CURRENT PIC S9(8) COMP. Ø5 D2G-COMMAND-THREAD-HWM PIC S9(8) COMP. Ø5 FILLER PIC X(36).*COPY DFHD2RDS.*CICS/DB2ENTRY STATISTICS (RESOURCE)Ø1 DFHD2RDS SYNCHRONIZED. Ø3 D2RLEN PIC S9(4) COMP. Ø3 D2RID PIC XX. 88 D2RIDE VALUE ' #'. Ø3 D2RDVERS PIC X. 88 D2RVERS VALUE '?'.

Page 103: CICS Performance Toolkit

103© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Ø3 FILLER PIC XXX. Ø3 D2R-DB2ENTRY-NAME PIC X(8). Ø3 D2R-PLAN-NAME PIC X(8). Ø3 D2R-PLANEXIT-NAME PIC X(8). Ø3 D2R-AUTHID PIC X(8). Ø3 D2R-AUTHTYPE PIC X. 88 D2R-AUTHTYPE-NA VALUE ' '. 88 D2R-AUTHTYPE-USERID VALUE '?'. 88 D2R-AUTHTYPE-OPID VALUE '?'. 88 D2R-AUTHTYPE-GROUP VALUE '?'. 88 D2R-AUTHTYPE-SIGNID VALUE '?'. 88 D2R-AUTHTYPE-TERM VALUE '?'. 88 D2R-AUTHTYPE-TXID VALUE '?'. Ø3 D2R-ACCOUNTREC PIC X. 88 D2R-ACCOUNTREC-NONE VALUE '?'. 88 D2R-ACCOUNTREC-TXID VALUE '?'. 88 D2R-ACCOUNTREC-TASK VALUE '?'. 88 D2R-ACCOUNTREC-UOW VALUE '?'. Ø3 D2R-THREADWAIT PIC X. 88 D2R-THREADWAIT-YES VALUE '?'. 88 D2R-THREADWAIT-NO VALUE '?'. 88 D2R-THREADWAIT-POOL VALUE '?'. Ø3 D2R-PRIORITY PIC X. 88 D2R-PRIORITY-HIGH VALUE '?'. 88 D2R-PRIORITY-EQUAL VALUE '?'. 88 D2R-PRIORITY-LOW VALUE '?'. Ø3 D2R-CALLS PIC S9(8) COMP. Ø3 D2R-SIGNONS PIC S9(8) COMP. Ø3 D2R-COMMITS PIC S9(8) COMP. Ø3 D2R-ABORTS PIC S9(8) COMP. Ø3 D2R-SINGLE-PHASE PIC S9(8) COMP. Ø3 D2R-THREAD-REUSE PIC S9(8) COMP. Ø3 D2R-THREAD-TERM PIC S9(8) COMP. Ø3 D2R-THREAD-WAIT-OR-OVERF PIC S9(8) COMP. Ø3 D2R-THREAD-LIMIT PIC S9(8) COMP. Ø3 D2R-THREAD-CURRENT PIC S9(8) COMP. Ø3 D2R-THREAD-HWM PIC S9(8) COMP. Ø3 D2R-PTHREAD-LIMIT PIC S9(8) COMP. Ø3 D2R-PTHREAD-CURRENT PIC S9(8) COMP. Ø3 D2R-PTHREAD-HWM PIC S9(8) COMP. Ø3 D2R-TASK-CURRENT PIC S9(8) COMP. Ø3 D2R-TASK-HWM PIC S9(8) COMP. Ø3 D2R-TASK-TOTAL PIC S9(8) COMP. Ø3 D2R-READYQ-CURRENT PIC S9(8) COMP. Ø3 D2R-READYQ-HWM PIC S9(8) COMP. Ø3 FILLER PIC X(36). PROCEDURE DIVISION. *------------------* RTN-PRINCIPAL. *-------------*

Page 104: CICS Performance Toolkit

104 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

EXEC CICS HANDLE CONDITION ERROR (REG-ERROR) NOTFND (REG-NOTFND) END-EXEC. EXEC CICS IGNORE CONDITION LENGERR END-EXEC. EXEC CICS ASKTIME ABSTIME(UTIME) END-EXEC. EXEC CICS RECEIVE INTO (DATOS-INPUT) LENGTH (LENGTH OF DATOS-INPUT) END-EXEC. EVALUATE DAT-DB2ENTRY-FUNC WHEN 'DB2E' PERFORM RTN-DB2ENTRY WHEN 'CONN' PERFORM RTN-CONNECT WHEN 'DISP' PERFORM RTN-DISPLAY THRU RTN-SEND-DISPLAY WHEN 'PLAN' PERFORM RTN-PLAN THRU RTN-SEND-PLAN WHEN OTHER MOVE 'IDBE CONN ' TO MSG1 MOVE 'SYNTAX : ' TO MSG2 MOVE 'IDBE CONN|DB2E|DISP|PLAN ' TO MSG3 MOVE 'IDBE CONN: For display DB2CONN statistics' TO MSG4 MOVE 'IDBE DB2E: For display DB2ENTRY name statistics' TO MSG5 MOVE 'IDBE DISP: For Browse DB2ENTRYs name GE #Calls ' TO MSG6 MOVE 'IDBE PLAN: For Browse DB2ENTRYs name EQUAL PlanName' TO MSG7 PERFORM REG-SEND-TEXTE END-EVALUATE. EXEC CICS RETURN END-EXEC. GOBACK. RTN-DB2ENTRY. *------------* MOVE DAT-DB2ENTRY-NAME TO MSG-DB2ENTRY-NAME. IF MSG-DB2ENTRY-NAME = SPACES PERFORM REG-NOTFND. EXEC CICS ASSIGN APPLID(APPLID) SYSID(SYSID) END-EXEC. EXEC CICS FORMATTIME ABSTIME(UTIME) DDMMYY(PRINT-DATE) DATESEP('/') TIME(PRINT-TIME) TIMESEP END-EXEC. EXEC CICS COLLECT STATISTICS SET(ADDRESS OF DFHD2RDS) DB2ENTRY(MSG-DB2ENTRY-NAME) END-EXEC. MOVE D2R-DB2ENTRY-NAME TO M2R-DB2ENTRY-NAME. MOVE D2R-PLAN-NAME TO M2R-PLAN-NAME.

Page 105: CICS Performance Toolkit

105© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

IF D2R-THREADWAIT-YES MOVE 'YES' TO M2R-THREADWAIT. IF D2R-THREADWAIT-NO MOVE 'NO' TO M2R-THREADWAIT. IF D2R-THREADWAIT-POOL MOVE 'POOL' TO M2R-THREADWAIT. IF D2R-PRIORITY-HIGH MOVE 'HIGH' TO M2R-PRIORITY. IF D2R-PRIORITY-EQUAL MOVE 'EQUAL' TO M2R-PRIORITY. IF D2R-PRIORITY-LOW MOVE 'LOW ' TO M2R-PRIORITY. MOVE D2R-CALLS TO M2R-CALLS. MOVE D2R-SIGNONS TO M2R-SIGNONS. MOVE D2R-ABORTS TO M2R-ABORTS. MOVE D2R-SINGLE-PHASE TO M2R-SINGLE-PHASE. MOVE D2R-THREAD-REUSE TO M2R-THREAD-REUSE. MOVE D2R-THREAD-TERM TO M2R-THREAD-TERM. MOVE D2R-THREAD-WAIT-OR-OVERF TO M2R-THREAD-WAIT-OR-OVERF. MOVE D2R-THREAD-LIMIT TO M2R-THREAD-LIMIT. MOVE D2R-THREAD-CURRENT TO M2R-THREAD-CURRENT. MOVE D2R-THREAD-HWM TO M2R-THREAD-HWM. MOVE D2R-PTHREAD-LIMIT TO M2R-PTHREAD-LIMIT. MOVE D2R-PTHREAD-CURRENT TO M2R-PTHREAD-CURRENT. MOVE D2R-PTHREAD-HWM TO M2R-PTHREAD-HWM. MOVE D2R-TASK-CURRENT TO M2R-TASK-CURRENT. MOVE D2R-TASK-HWM TO M2R-TASK-HWM. MOVE D2R-TASK-TOTAL TO M2R-TASK-TOTAL. EXEC CICS SEND FROM(MSG-PANTALLA-DB2ENTRY) LENGTH (LENGTH OF MSG-PANTALLA-DB2ENTRY) ERASE WAIT END-EXEC. RTN-CONNECT. *-----------* EXEC CICS ASSIGN APPLID(C-APPLID) SYSID(C-SYSID) END-EXEC. EXEC CICS FORMATTIME ABSTIME(UTIME) DDMMYY(PRINC-DATE) DATESEP('/') TIME(PRINC-TIME) TIMESEP END-EXEC. EXEC CICS COLLECT STATISTICS SET(ADDRESS OF DFHD2GDS) DB2CONN END-EXEC. MOVE D2G-DB2CONN-NAME TO M2G-DB2CONN-NAME. MOVE D2G-DB2-ID TO M2G-DB2-ID. MOVE D2G-TCB-LIMIT TO M2G-TCB-LIMIT. MOVE D2G-TCB-CURRENT TO M2G-TCB-CURRENT. MOVE D2G-TCB-HWM TO M2G-TCB-HWM.

Page 106: CICS Performance Toolkit

106 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

MOVE D2G-TCB-FREE TO M2G-TCB-FREE. MOVE D2G-POOL-PLAN-NAME TO M2G-POOL-PLAN-NAME. MOVE D2G-POOL-CALLS TO M2G-POOL-CALLS. MOVE D2G-POOL-SIGNONS TO M2G-POOL-SIGNONS. MOVE D2G-POOL-COMMITS TO M2G-POOL-COMMITS. MOVE D2G-POOL-THREAD-REUSE TO M2G-POOL-THREAD-REUSE. MOVE D2G-POOL-THREAD-TERM TO M2G-POOL-THREAD-TERM. MOVE D2G-POOL-THREAD-WAITS TO M2G-POOL-THREAD-WAITS. MOVE D2G-POOL-THREAD-LIMIT TO M2G-POOL-THREAD-LIMIT. MOVE D2G-POOL-THREAD-CURRENT TO M2G-POOL-THREAD-CURRENT. MOVE D2G-DSNC-COMMAND-CALLS TO M2G-DSNC-COMMAND-CALLS. MOVE D2G-COMMAND-THREAD-LIMIT TO M2G-COMMAND-THREAD-LIMIT. MOVE D2G-COMMAND-THREAD-HWM TO M2G-COMMAND-THREAD-HWM. EXEC CICS SEND FROM(MSG-PANTALLA-CONNECT) LENGTH (LENGTH OF MSG-PANTALLA-CONNECT) ERASE WAIT END-EXEC. RTN-DISPLAY. *-----------* MOVE DAT-N-CALLS TO DIS-N-CALLS. EXEC CICS ASSIGN APPLID(DIS-APPLID) SYSID(DIS-SYSID) END-EXEC. EXEC CICS FORMATTIME ABSTIME(UTIME) DDMMYY(DIS-DATE) DATESEP('/') TIME(DIS-TIME) TIMESEP END-EXEC. EXEC CICS INQUIRE DB2ENTRY START AT(DAT-DB2ENTRY-NAME) END-EXEC. PERFORM UNTIL I > 16 EXEC CICS INQUIRE DB2ENTRY(DAT-DB2ENTRY-NAME) NEXT NOHANDLE RESP(RESP1) END-EXEC IF RESP1 = DFHRESP(END) MOVE '| *** END OF DB2ENTRYS ***' TO DIS-TITUR(I) MOVE 17 TO I GO TO RTN-SEND-DISPLAY END-IF EXEC CICS COLLECT STATISTICS SET(ADDRESS OF DFHD2RDS) DB2ENTRY(DAT-DB2ENTRY-NAME) END-EXEC MOVE D2R-CALLS TO W2R-CALLS IF W2R-CALLS >= DAT-N-CALLS MOVE D2R-DB2ENTRY-NAME TO DIS-DB2ENTRY-NAME(I) DIS-DB2ENTRY-SF MOVE D2R-PLAN-NAME TO DIS-PLAN-NAME(I) MOVE D2R-CALLS TO DIS-CALLS(I)

Page 107: CICS Performance Toolkit

107© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

MOVE D2R-THREAD-REUSE TO DIS-THREAD-REUSE(I) MOVE D2R-THREAD-TERM TO DIS-THREAD-TERM(I) MOVE D2R-THREAD-WAIT-OR-OVERF TO DIS-THREAD-WAIT(I) MOVE D2R-THREAD-LIMIT TO DIS-THREAD-LIMIT(I) MOVE D2R-THREAD-HWM TO DIS-THREAD-HWM(I) MOVE D2R-THREAD-CURRENT TO DIS-THREAD-CURRENT(I) ADD 1 TO I END-IF END-PERFORM. RTN-SEND-DISPLAY. *----------------* EXEC CICS INQUIRE DB2ENTRY END END-EXEC. EXEC CICS SEND FROM(MSG-PANTALLA-DISPLAY) LENGTH (LENGTH OF MSG-PANTALLA-DISPLAY) ERASE WAIT END-EXEC. RTN-PLAN. *---------* MOVE DAT-DB2ENTRY-NAME TO PLA-PLAN-NAME. EXEC CICS ASSIGN APPLID(PLA-APPLID) SYSID(PLA-SYSID) END-EXEC. EXEC CICS FORMATTIME ABSTIME(UTIME) DDMMYY(PLA-DATE) DATESEP('/') TIME(PLA-TIME) TIMESEP END-EXEC. EXEC CICS INQUIRE DB2ENTRY START AT(DAT-DB2ENTRY-SF) END-EXEC. PERFORM UNTIL I > 16 EXEC CICS INQUIRE DB2ENTRY(DAT-DB2ENTRY-SF) NEXT NOHANDLE RESP(RESP1) END-EXEC IF RESP1 = DFHRESP(END) MOVE '| *** END OF DB2ENTRYS ***' TO PLA-TITUR(I) MOVE 17 TO I GO TO RTN-SEND-PLAN END-IF EXEC CICS COLLECT STATISTICS SET(ADDRESS OF DFHD2RDS) DB2ENTRY(DAT-DB2ENTRY-SF) END-EXEC IF D2R-PLAN-NAME = DAT-DB2ENTRY-NAME MOVE D2R-DB2ENTRY-NAME TO PLA-DB2ENTRY-NAME(I) PLA-DB2ENTRY-SF IF D2R-THREADWAIT-YES MOVE 'YES' TO PLA-THREADWAIT(I) END-IF

Page 108: CICS Performance Toolkit

108 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

IF D2R-THREADWAIT-NO MOVE 'NO' TO PLA-THREADWAIT(I) END-IF IF D2R-THREADWAIT-POOL MOVE 'POOL' TO PLA-THREADWAIT(I) END-IF IF D2R-PRIORITY-HIGH MOVE 'HIGH' TO PLA-PRIORITY(I) END-IF IF D2R-PRIORITY-EQUAL MOVE 'EQUAL' TO PLA-PRIORITY(I) END-IF IF D2R-PRIORITY-LOW MOVE 'LOW ' TO PLA-PRIORITY(I) END-IF MOVE D2R-CALLS TO PLA-CALLS(I) MOVE D2R-THREAD-REUSE TO PLA-THREAD-REUSE(I) MOVE D2R-THREAD-TERM TO PLA-THREAD-TERM(I) MOVE D2R-THREAD-WAIT-OR-OVERF TO PLA-THREAD-WAIT(I) MOVE D2R-TASK-TOTAL TO PLA-TASK-TOTAL(I) ADD 1 TO I END-IF END-PERFORM. RTN-SEND-PLAN. *-------------* EXEC CICS INQUIRE DB2ENTRY END END-EXEC. EXEC CICS SEND FROM(MSG-PANTALLA-PLAN) LENGTH (LENGTH OF MSG-PANTALLA-PLAN) ERASE WAIT END-EXEC. REG-ERROR. *----------* MOVE 'ERRORØ2 ... USE CEDF TRANSACTION ' TO MSG2. PERFORM REG-SEND-TEXTE. REG-NOTFND. *----------* MOVE 'IDBE DISP >=ØØØØØØØ ' TO MSG1. MOVE 'ERRORØ1 ... DB2ENTRY NOT FOUND' TO MSG2. MOVE 'SYNTAX: ' TO MSG3. MOVE 'IDBE DB2E db2entry : for db2entry name statistics' TO MSG4. MOVE ' ' TO MSG5. MOVE 'IDBE DISP db2entry>=#calls ' TO MSG6. MOVE 'DB2ENTRY : DB2ENTRY NAME initial foward Browse' TO MSG7. MOVE '#CALLS : For List only DB2ENTRYs GE #CALLS ' TO MSG8. MOVE ' (Default ØØØØØØØ)' TO MSG9. PERFORM REG-SEND-TEXTE.

Page 109: CICS Performance Toolkit

109© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

REG-SEND-TEXTE. *-------------* EXEC CICS SEND FROM(MSG-ERROR) LENGTH (LENGTH OF MSG-ERROR) ERASE WAIT LAST END-EXEC. EXEC CICS RETURN END-EXEC.

IDBE CONN

Applid : CICPBB1A Display of DB2CONN Statistic Online Date : 11/Ø6/Ø1

Sysid : PT9Ø Time : 1Ø:18:35

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

|DB2 Connection name : RCT1A DB2 Sysid : DSNP |

+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +

|TCBS STATISTICS |

|# Maximo : 66 # Current : 63 # Peak : 63 |

|# Free : 27 |

+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +

|DB2 CONNECTION POOL STATISTICS |

|Plan name : DEFAULT # of CALLS : Ø # of Signons : Ø |

|# of Commits : Ø # of Reuses : 1 # Terminates : 37,675 |

|# of Waits : 6 # Pool Limit : 27 # Current : 4 |

+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +

|DB2 CONNECTION DSNC COMMAND STATISTICS |

|# Calls : Ø # Maximo : 1 # Peak : Ø |

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

CLEAR = EXIT ENTER = REFRESH

IDBE DB2E PAF3

Applid : CICPBB1A Display DB2Entry Statistics Online Date : 11/Ø6/Ø1

Sysid : PT9Ø Time : 1Ø:22:47

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

|DB2 Entry Name: PAF3 Plan Name : BPPBAPE ThreadWait: POOL |

+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +

|Priority : EQUAL # Calls : 318,Ø29 Signons : 6 |

|Aborts : 165 Single Pha: 5,4Ø8 # Reuses : 5,281 |

|Terminates: 9Ø # W/O : 1 |

|# Current : Ø # Peak : 6 # Limit : 6 |

|Prot.Curr : 2 Prot.Peak : 2 Prot.Limit: 2 |

|Curr.Task : Ø Peak Task : 7 Total Task: 5,4Ø8 |

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

CLEAR = EXIT ENTER = REFRESH

Page 110: CICS Performance Toolkit

110 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

IDBE DISP B24 >= 1000

Applid : CICPBB1A Browse DB2Entrys Statistics Online Date : 11/Ø6/Ø1

Sysid : PT9Ø Time : 1Ø:31:Ø3

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

|DB2Entry PlanName # Calls # Reuses # Term. W/O #Lim. #Peak #Curr.|

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

|B24 BPPBIPE 4Ø9,835 5,548 48 Ø 1Ø 5 Ø|

|COUNT BPPASPE 4,241 623 45 Ø 4 2 Ø|

|ENTRY BPPGPPE 29Ø,384 7,635 49 Ø 1Ø 5 Ø|

|WARRANT BPPCRPE 14,839 1,Ø13 24 Ø 6 3 Ø|

| *** END OF DB2ENTRYS *** |

| |

| |

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

CLEAR = Exit ENTER = Foward

IDBE PLAN=BPPBIPE MZ05

Applid : CICPBB1A Browse DB2Entrys with same PlanName Date : 11/Ø6/Ø1

Sysid : PT9Ø Time : 1Ø:47:35

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

|DB2Entry ThrWait Priority # Calls # Reuses # Term W/O Total-Task|

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

|B24 POOL EQUAL 4Ø9,835 5,548 48 Ø 5,62Ø|

|HZØ2 POOL EQUAL 1,32Ø 138 12 Ø 239Ø|

|JZ99 POOL EQUAL Ø Ø Ø Ø Ø|

|IZ33 POOL EQUAL 456 32 3 35 35|

|MZØ5 POOL EQUAL Ø Ø Ø Ø Ø|

* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = *

CLEAR = Exit ENTER = Foward

After tuning and reusing the threads, the following were noted:

• The daily average of CICS TS transactions was increased by 10%.

• The response time daily average was lowered by 25%.

• The consumption of CPU by CICS TS and DB2 was reduced by 9%.

The most important change was that contention is not presentany more in CICS TS when the maximum TCBLIMIT value is reached.

Juan Eduardo Flores SoteloSystems ProgrammerBanco Continental (Peru) © Xephon 2002

Page 111: CICS Performance Toolkit

111© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Understanding CICS Monitoring and Statistics data

CICSPlex SM provides information about CICS runtime resources viatwo components, namely OPERATIONS and MONITORING. The detailsof these resources can be found in the Resource Tables Reference manual.

OPERATIONS resources are obtained from the Managed Address Space(MAS) at the point in time when the request is made. EXEC CICSINQUIRE, COLLECT STATISTICS, etc are used by the MAS agent codeto obtain relevant attribute data for a given resource type. In addition, someattributes are calculated from information obtained via the above interfaces.A typical operations resource would be CICSRGN.

MONITORING resources are obtained from the MON data cache at thepoint in time the request is made. How this data is produced from the MASdata is, however, a little more involved. Monitoring objects have Mprefixes as a naming convention. The Monitoring equivalent of CICSRGNis therefore MCICSRGN.

In common with Operations requests, EXEC CICS INQUIRE, COLLECTSTATISTICS etc, are used by the monitoring MAS agent code and againadditional attributes are calculated. Monitoring (XMNOUT) and Statistics(XSTOUT) exits are also utilized for capturing information from the MAS. The resource data to be obtained is defined via the relevant MONDEF,PERIODEF definitions. It is obtained at a sampling frequency defined inCSYSDEF and MONSPEC definitions. Data obtained from the MASagents is placed in N prefixed tables (eg NCICSRGN), which are notavailable to the external user. They are merely transitory tables used by theCMAS for amalgamating information into the M prefix tables in the MONdata cache. At that point in time, additional fields are also calculated by theCMAS (so-called derived fields).

Whilst the relation between base EXEC CICS INQUIRE requests andEXEC CICS COLLECT STATISTICS data to Resource Table attributes isstraightforward enough, a common question is how the additional fieldsare calculated in the MAS, how values are amalgamated into the M prefixtables, and how derived field data is calculated. This article attempts toprovide some answers to those questions.

Page 112: CICS Performance Toolkit

112 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

In the following discussion, the resources are assumed to correspond tothe CICS Transaction Server 1.3 level of function. Of course, CICSPlexSM supports all levels of CICS Transaction Server.

MAS AGENT DATA

The operations and monitoring fields that are calculated in the MAS agents,and how those attributes are derived, are shown in Figure 1.

Monitoring exit XMNOUT

The XMNOUT exit copies performance class record data into a storagearea for asynchronous processing by another task. Data is processed onlyif information has been requested for this tranid. Exception class recordsare not processed.

The data is transformed into NTASK tables. This is a straight transformationbetween data identified by dictionary field identifiers and NTASK fields (egNTASK_TRANID and dfi 001; NTASK_USERID and dfi 089).

Statistics exit XSTOUT

Resource data is collected for resource types for which monitoring isactive (as defined via MONDEFs etc). Only interval statistics, end of daystatistics, and requested reset statistics are processed. The required data isplaced into a storage area for asynchronous MAS agent processing. Again,additional fields are calculated as defined in the example above.

CMAS PROCESSING

Processing in the CMAS follows a cycle. Events in the cycle are as follows.

Mxxx table initialization

When CPSM MONITORing is activated, the initial values for the Mxxxxtables are set. All CHAR data types are set to blank, all others to X'00's.

Page 113: CICS Performance Toolkit

113© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Figure1a: Operations and Monitoring fields

PAGEOUT OUXBPOUT Total page outs

REALSTG RAXFMCT- RAX ASCBRSME

Total frame count

CPUTIME ASCBEJST+ ASCBSRBT

Total CPU time

PRGMRCMP LDGDSASTAT

Sum(LDGDPSCR, LDGMAXDSA)

Programs removed by cmpression

LOADPNIU Sum(LDGPROGNIU, LDGMAXDSA)

No of programs on NIU queue

LOADRNIU Sum(LDGRECNIU, LDGMAXDSA)

No of reclaims from NIU queue

LOADTNIU Sum(LDGDPSCT, LDGMAXDSA)

Times removed program on queue

MVSSYSID CVT SMCASID- SMCABASE

MVS sysid

CICSDSA NCICSDSA SIZE SMSBODY SMSDSASZ Storage size

STGFSIZE SMSFSTG Free storage (inc. cushion)

LIMIT SMSGLOBAL

SMS(E)DSALIMIT Max DSA size

CURRALLOC SMS(E)DSATOTAL Cur DSA alloction

HWMALLOC SMSHWM(E)DSATOTAL HWM DSA allocated

POOLPCTFREE STGFSIZE*1000/ SIZE Percent free in the specific storage pool

PCTFREE [SMS(E)DSALIMIT-SMS(E)DSATOTAL+ Sum( SMSBODY.SMSFSTG, SMSNPAGP)] *1000/ LIMIT

Percent free in storage area

Page 114: CICS Performance Toolkit

114 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Figure1b: Operations and Monitoring fields

Operations Monitoring Attribute CICS DSECT

DSECT Field Comments

N/A NCMDT TOTLREQCNT DFHA17DS A17DSRD+ A17DSGU+ A17DSBR+ A17DSWRA+ A17DSWRU+ A17DSDEL

Total request count

TOTMREQCNT A17DTRDS+ A17DTRNF+ A17DTAVR+ A17DTADS+ A17DTARJ+ A17DTATF+ A17DTRWS+ A17DTDLS

Total request count

N/A NLOCFILE TOTLREQCNT DFHA17DS A17DSRD+ A17DSGU+ A17DSBR+ A17DSWRA+ A17DSWRU+ A17DSDEL

Total request count

N/A NREMFILE TOTLREQCNT DFHA17DS A17DSRD+ A17DSGU+ A17DSBR+ A17DSWRA+ A17DSWRU+ A17RMDEL

Extra partition count

N/A NCONNECT TOTFUNCSHIP DFHA14DS A14ESTFC+ A14ESTIC+ A14ESTTD+ A14ESTTS+ A14ESTDL+ A14ESTPC

Total function ships

CICSRGN NCICSRGN CUTCBCNT DSGTCB Sum(DSGTCBCA, DSGASIZE)

Store Number of TCBs

TOTLTASKS DFHXMGDS XMGTNUM+ XMGNUM

Total tasks since startup

SYSID SMCABASE SMCASID MVS Sysid

MVSSYSNAME CVT CVTSNAME MVS sysname

SIOREQ ASCB ASCBIOSC Total IO count

PAGEIN OUXB OUXBPIN+ OUXBCAPI

Page ins

Page 115: CICS Performance Toolkit

115© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

CICS reset command

CICS can have its data collection reset. This action has no effect on theMxxxx table entries.

CICSPlex SM reset command

CICSPlex SM can request to have its data collection reset. Most fields areunaffected by this action.

The possible CPSM reset actions on attributes can be the following:

• RESET – reset to initialization value

• ZERO – set to X'00's

• BLANK – set to C‘ ’s

• NONE – no change

• ZEROCICS – ignore for CICS reset.

The most common action is NONE.

Combining Nxxxx data with existing Mxxxx data

Each time the data is sampled (Nxxxx), it must be combined with the oldMxxxx data to produce the new Mxxxx data. For most attributes, the actionis to replace the attribute with the new value (ie Mxxxx_aaa = Nxxxx_aaa).This is denoted by REPL.

The complete set of calculations that can be performed is as follows:

• ADD – newcurrentdata = newCICSvalue + oldcurrentvalue

• SUB – newcurrentvalue = newCICSvalue – oldcurrentvalue

• DELTA – newcurrentdata = newCICSvalue – seedvalue

• NONE – no processing to take place

• REPL<,how>:

– None: (newCICSvalue)

– RATE_INST: attrlist1((newcurrent) – (oldcurrent))/(intervalSeconds)

Page 116: CICS Performance Toolkit

116 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

– RATE_INTVL: attrlist1(newcurrent)/((intervalseconds)*(numberofintervals))

– PCTG_INST: attrlist1((newcurrent)-(oldcurrent))/attrlist2((newcurrent) – (oldcurrent))

– PCTG_INTV: attrlist1(newcurrent)/attrlist2(newcurrent)

– PCT_INST: attrlist1((newcurrent)-(oldcurrent))/attrlist2((newcurrent) – (oldcurrent))

– PCT_INTVL: (((oldcurrentPCT_INST) * (numberofintervals –1) + (newcurrentPCT_INST))/(numberofintervals)

– AVG_INST: attrlist1((newcurrent) – (oldcurrent))/attrlist2((newcurrent) – (oldcurrent))

– AVG_INTVL: (((oldcurrentAVG_INST) * (numberofintervals– 1)) + (newcurrentAVG_INST))/ (number of intervals)

– SUM: attrlist1(newcurrent) + attrlist2(newcurrent)

– DEDUCT: attrlist1(newcurrent) – attrlist2(newcurrent)

– STCKDIFF: attrlist1(newcurrentSTCK) –attrlist2(newcurrentSTCK)

– TALLY: (newderived)+(oldurrent).

Processing

It is useful to have a value (called the seed value) to help in the calculationof the Mxxxx values. The seed is set as follows:

1 Activation of monitoring.seedValue = CICS value at this time

2 CICS Reset.seedValue = seedValue – last CICS value before reset

3 CPSM Reset.seedValue = seedValue + currentSMValue

For DELTA type fields, the new value is calculated at sample intervals viaMvalue = Nvalue – seed.

This is illustrated in Figure 2.

Intermediate fields can also be defined for the duration of the processingof the record, in order to perform more complex calculations.

Page 117: CICS Performance Toolkit

117© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

TABLES

The following tables show attributes that have processing properties otherthan NONE, REPLace.

MCICSRGN

Base fieldsAttribute CPSM Reset CalculationMAXTRCNT ZERO DELTALOADREQS ZERO DELTALOADTIME ZERO DELTAPRGMUCNT ZERO DELTALOADWCNT ZERO DELTALOADWAIT ZERO DELTARDEBRBLD ZERO DELTAPRGMRCMP ZERO DELTALOADTNIU ZERO DELTALOADRNIU ZERO DELTASDMPTOTL ZERO DELTASDMPSUPP ZERO DELTATDMPTOTL ZERO DELTATDMPSUPP ZERO DELTACPUTIME ZEROCICS DELTAPAGEIN ZEROCICS DELTAPAGEOUT ZEROCICS DELTASIOREQ ZEROCICS DELTAVTMRPLMAX ZERO DELTAVTMRPLPOST ZERO DELTAVTMSOSCNT ZERO DELTAVTMACBDOPE ZERO DELTATOTACTVUSRTR ZERO DELTATOTDELYUSRTR ZERO DELTATOTQUETIME ZERO DELTAPROGAUTOATTM ZERO DELTAPROGAUTOXREJ ZERO DELTAPROGAUTOFAIL ZERO DELTA

Figure 2: Example values used

Start MON

Sample Sample CICS Reset

Sample Sample CPSM reset

Sample Sample

Nusecount 12 24 30 36 10 20 36 46

seedvalue 12 12 12 -24 -24 -24 20 20 20

Musecount 0 12 18 34 44 0 16 26

Page 118: CICS Performance Toolkit

118 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

INTVTRANS ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCURTASKRATE ZERO REPL,RATE_INST TOTLTASKSINTTASKRATE ZERO REPL,RATE_INTVL TOTLTASKSCURCPUPER ZEROCICS REPL,PCTG_INST CPUTIMEINTCPUPER ZEROCICS REPL,PCTG_INTVL CPUTIMECURPGIRATE ZEROCICS REPL,RATE_INST PAGEININTPGIRATE ZEROCICS REPL,RATE_INTVL PAGEINCURPGORATE ZEROCICS REPL,RATE_INST PAGEOUTINTPGORATE ZEROCICS REPL,RATE_INTVL PAGEOUTCURSIORATE ZEROCICS REPL,RATE_INST SIOREQINTSIORATE ZEROICCS REPL,RATE_INTVL SIOREQ

MCICSDSA

Base fieldsAttribute CPSM Reset CalculationGETMTOTL ZERO DELTAFREMTOTL ZERO DELTAASUBTOTL ZERO DELTADSUBTOTL ZERO DELTANSTGTOTL ZERO DELTASTGSTOTL ZERO DELTASTGPWCNT ZERO DELTASTGCRELC ZERO DELTASTGSOSC ZERO DELTASTGSOST ZERO DELTASTGVTOTL ZERO DELTANSTGTSUSP DELTA  

Derived fieldsField CPSM Reset Calculation argsCURFRESTG ZERO REPL,PCT_INST STGFSIZE,SIZEINTFRESTG ZERO REPL,PCT_INTVL STGFSIZE,SIZE

MTRANCLS

Base fieldsAttribute CPSM Reset CalculationQUEUED ZERO PURGETHRESH DELTAATTACHES ZERO DELTAPURGEIMMED ZERO DELTAACCEPTIMMED ZERO DELTA

Page 119: CICS Performance Toolkit

119© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

ACCEPTAFTRQD ZERO DELTATIMESATMAX ZERO DELTAPURGTHRTIMES ZERO DELTAQUEUETIME ZERO DELTACURQUEDTIME ZERO DELTA

MTDQGBL

Base fieldsAttribute CPSM Reset CalculationNOSPACECNT ZERO DELTAWRITES ZERO DELTAREADS ZERO DELTAFMTWRITE ZERO DELTAIOERRS ZERO DELTA

Intermediate fieldsField CPSM Reset Calculation argsIMMD_SAMPLACCESS REPL,SUM READS,WRITESIMMD_ACCESMREADS REPL,DEDUCT ACCESSCNT,READS

Derived fieldsField CPSM Reset Calculation argsCURACCCNT ZERO REPL,RATE_INST ACCESSMREADSINTACCCNT ZERO REPL,RATE_INTVL ACCESSMREADSCURFULLPER ZERO REPL,PCTG_INST NOSPACECNT,SAMPLACCESSINTFULLPER ZERO REPL,PCTG_INTVL NOSPACECNT,SAMPLACCESSCURWRITRATE ZERO REPL,RATE_INST WRITESINTWRITRATE ZERO REPL,RATE_INTVL WRITESCURREADRATE ZERO REPL,RATE_INST READSINTREADRATE ZERO REPL,RATE_INTVL READS

MTSQGBL

Base fieldsAttribute Reset CalculationPUTQMAIN ZERO DELTAGETQMAIN ZERO DELTAPUTQAUX ZERO DELTAGETQAUX ZERO DELTAENTLGQUE ZERO DELTAQUECRECNT ZERO DELTAQUEXTENDS ZERO DELTAWRTGTCISZ ZERO DELTAPEAKCIUSE ZERO DELTAAUXFULL ZERO DELTA

Page 120: CICS Performance Toolkit

120 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

BUFFWAITS ZERO DELTABUFWRITES ZERO DELTAWRTFRECVR ZERO DELTABUFREADS ZERO DELTAFMTWRT ZERO DELTAIOERRS ZERO DELTASTRINGWAIT ZERO DELTA

Intermediate fieldsField CPSM Reset Calculation argsIMMD_SAMPLACCESS REPL,SUM PUTQAUX,GETQAUXIMMD_INTVLACCESS REPL,SUM PUTQAUX,GETQAUXIMMD_SAMPLBUFACC REPL,SUM BUFREADS,BUFWRITESIMMD_INTVLBUFACC REPL,SUM BUFWRITES,BUFREADSIMMD_GETQMREADB REPL,DEDUCT GETQAUX,BUFREADS

Derived fieldsField CPSM Reset Calculation argsCURREADRATE ZERO REPL,RATE_INST BUFREADSINTREADRATE ZERO REPL,RATE_INTVL BUFREADSCURMPUTQRATE ZERO REPL,RATE_INST PUTQMAININTMPUTQRATE ZERO REPL,RATE_INTVL PUTQMAINCURMGETQRATE ZERO REPL,RATE_INST GETQMAININTMGETQRATE ZERO REPL,RATE_INTVL GETQMAINCURAPUTQRATE ZERO REPL,RATE_INST PUTQAUXINTAPUTQRATE ZERO REPL,RATE_INTVL PUTQAUXCURAGETQRATE ZERO REPL,RATE_INST GETQAUXINTAGETQRATE ZERO REPL,RATE_INTVL GETQAUXCURFULLPER ZERO REPL,PCT_INST AUXFULL,SAMPLACCESSINTFULLPER ZERO REPL,PCT_INTVL AUXFULL,SAMPLACCESSCURBHITRATE ZERO REPL,RATE_INST GETQMREADBINTBHITRATE ZERO REPL,RATE_INTVL GETQMREADBCURWRITRATE ZERO REPL,RATE_INST BUFWRITESINTWRITRATE ZERO REPL,RATE_INTVL BUFWRITES

MFEPICON

Base fieldsAttribute CPSM Reset CalculationACQUIRES ZERO DELTACONVERSATNS ZERO DELTAUNSOLICINP ZERO DELTACHARSSENT ZERO DELTACHARSRECVD ZERO DELTARECVTIMEOUT ZERO DELTAERRORS ZERO DELTA

Page 121: CICS Performance Toolkit

121© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Derived fieldsField CPSM Reset Calculation argsCSACQRATE ZERO REPL,RATE_INST ACQUIRESMIACQRATE ZERO REPL,RATE_INTVL ACQUIRES

MCONNECT

Base fieldsAttribute CPSM Reset CalculationATISBPRI ZERO DELTAATISBSEC ZERO DELTABIDSSENT ZERO DELTAALLOCATES ZERO DELTAFAILINKALLOC ZERO DELTAFAILEDOTHERS ZERO DELTAFCFUNCSHIP ZERO DELTAICFUNCSHIP ZERO DELTATDFUNCSHIP ZERO DELTATSFUNCSHIP ZERO DELTADLIFUNCSHIP ZERO DELTATOTFUNCSHIP ZERO DELTATERMSHAREREQ ZERO DELTAMAXQTPURGCNT ZERO XZIQREJS ZERO XZIQPRGCNT ZERO XZIQALLCPRG ZERO MAXQTALLCPRG ZERO PRICURRUSED ZERO DELTASECCURRUSED ZERO DELTADPLFUNCSHIP ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCURFCFSRATE ZERO REPL,RATE_INST TOTFUNCSHIPINTFCFSRATE ZERO REPL,RATE_INTVL TOTFUNCSHIP

MLSRPOOL

Base fieldsAttribute CPSM Reset CalculationTOTWAITREQ ZERO DELTADBLOOKASIDE ZERO DELTADBREAD ZERO DELTADBUIWRITE ZERO DELTADBNUWRITE ZERO DELTADCREAD ZERO DELTA

Page 122: CICS Performance Toolkit

122 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

DCWRITE ZERO DELTAIBLOOKASIDE ZERO DELTAIBREADS ZERO DELTAIBUIWRITE ZERO DELTAIBNUWRITE ZERO DELTAICREAD ZERO DELTAICWRITE ZERO DELTA

Intermediate fieldsField CPSM Reset Calculation argsIMMD_SAMPLDWRTCT REPL,SUM DBUIWRITE,DBNUWRITEIMMD_INTVLDWRTCT REPL,SUM DBUIWRITE,DBNUWRITEIMMD_SAMPLIWRTCT REPL,SUM IBUIWRITE,IBNUWRITEIMMD_INTVLIWRTCT REPL,SUM IBUIWRITE,IBNUWRITE

Derived fieldsField CPSM Reset Calculation argsCURDBHITRATE ZERO REPL,RATE_INST DBLOOKASIDEINTDBHITRATE ZERO REPL,RATE_INTVL DBLOOKASIDECURDWRITRATE ZERO REPL,RATE_INST SAMPLDWRTCTINTDWRITRATE ZERO REPL,RATE_INTVL INTVLDWRTCTCURDREADRATE ZERO REPL,RATE_INST DBREADINTDREADRATE ZERO REPL,RATE_INTVL DBREADCURDHWRIRATE ZERO REPL,RATE_INST DCWRITEINTDHWRIRATE ZERO REPL,RATE_INTVL DCWRITECURDHREARATE ZERO REPL,RATE_INST DCREADINTDHREARATE ZERO REPL,RATE_INTVL DCREADCURIBHITRATE ZERO REPL,RATE_INST IBLOOKASIDEINTIBHITRATE ZERO REPL,RATE_INTVL IBLOOKASIDECURIWRITRATE ZERO REPL,RATE_INST SAMPLIWRTCTINTIWRITRATE ZERO REPL,RATE_INTVL INTVLIWRTCTCURIREADRATE ZERO REPL,RATE_INST IBREADSINTIREADRATE ZERO REPL,RATE_INTVL IBREADSCURIHWRIRATE ZERO REPL,RATE_INST ICWRITEINTIHWRIRATE ZERO REPL,RATE_INTVL ICWRITECURIHREARATE ZERO REPL,RATE_INST ICREADINTIHREARATE ZERO REPL,RATE_INTVL ICREAD

MLSRPBUF

Base fieldsAttribute CPSM Reset CalculationREADS ZERO DELTAUSERIWRITE ZERO DELTANONUWRITE ZERO DELTACREADS ZERO DELTACWRITES ZERO DELTA

Page 123: CICS Performance Toolkit

123© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

Intermediate fieldsField CPSM Reset Calculation argsIMMD_SAMPLDWRTCT REPL,SUM USERIWRITE,NONUWRITE

Derived fieldsField CPSM Reset Calculation argsCURWRITRATE ZERO REPL,RATE_INST SAMPLDWRTCTINTWRITRATE ZERO REPL,RATE_INTVL SAMPLDWRTCTCURREADRATE ZERO REPL,RATE_INST READSINTREADRATE ZERO REPL,RATE_INTVL READSCURHWRITRATE ZERO REPL,RATE_INST CWRITESINTHWRITRATE ZERO REPL,RATE_INTVL CWRITESCURHREADRATE ZERO REPL,RATE_INST CREADSINTHREADRATE ZERO REPL,RATE_INTVL CREADS

MCMDT

Base fieldsAttribute CPSM Reset CalculationGETCNT ZERO DELTAGETUPDCNT ZERO DELTABROWSECNT ZERO DELTAADDCNT ZERO DELTAUPDATECNT ZERO DELTALOCDELCNT ZERO DELTADEXCPCNT ZERO DELTAIEXCPCNT ZERO DELTAWSTRCNT ZERO DELTAWSTRCCURCNT ZERO DELTAREADS ZERO DELTARECNOTFND ZERO DELTAADDFRREAD ZERO DELTAADDREQ ZERO DELTAADDREJ ZERO DELTAADDTFULL ZERO DELTAREWRITE ZERO DELTADELETEREQ ZERO DELTAMAXTSIZE ZERO DELTATOTLREQCNT ZERO DELTATOTMREQCNT ZERO DELTA

Derived fieldsField CPSM Reset Calculation ArgsCURREQRATE ZERO REPL,RATE_INST TOTLREQCNTINTREQRATE ZERO REPL,RATE_INTVL TOTLREQCNTCURDEXCPRATE ZERO REPL,RATE_INST DEXCPCNTINTDEXCPRATE ZERO REPL,RATE_INTVL DEXCPCNT

Page 124: CICS Performance Toolkit

124 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

CURIEXCPRATE ZERO REPL,RATE_INST IEXCPCNTINTIEXCPRATE ZERO REPL,RATE_INTVL IEXCPCNTCURMRQRATE ZERO REPL,RATE_INST TOTMREQCNTINTMRQRATE ZERO REPL,RATE_INTVL TOTMREQCNTCURREADRATE ZERO REPL,RATE_INST READSINTREADRATE ZERO REPL,RATE_INTVL READS

MLOCFILE

Base fieldsAttribute CPSM Reset CalculationGETCNT ZERO DELTAGETUPDCNT ZERO DELTABROWSECNT ZERO DELTAADDCNT ZERO DELTAUPDATECNT ZERO DELTALOCDELCNT ZERO DELTATOTLREQCNT ZERO DELTADEXCPCNT ZERO DELTAIEXCPCNT ZERO DELTAWSTRCNT ZERO DELTAWSTRCCURCNT ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCURDEXCPRATE ZERO REPL,RATE_INST DEXCPCNTINTDEXCPRATE ZERO REPL,RATE_INTVL DEXCPCNTCURIEXCPRATE ZERO REPL,RATE_INST IEXCPCNTINTIEXCPRATE ZERO REPL,RATE_INTVL IEXCPCNTCURREQRATE ZERO REPL,RATE_INST TOTLREQCNTINTREQRATE ZERO REPL,RATE_INTVL TOTLREQCNT

MREMFILE

Base fieldsAttribute CPSM Reset CalculationREMDELCNT ZERO DELTAGETCNT ZERO DELTAGETUPDCNT ZERO DELTABROWSECNT ZERO DELTAADDCNT ZERO DELTAUPDATECNT ZERO DELTATOTLREQCNT ZERO DELTA

Derived fieldsField CPSM Reset Calculation args

Page 125: CICS Performance Toolkit

125© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

CURREQRATE ZERO REPL,RATE_INST TOTLREQCNTINTREQRATE ZERO REPL,RATE_INTVL TOTLREQCNT

MJOURNL

Base fieldsAttribute CPSM Reset CalculationTAPESOPEN ZERO DELTABLKWRCNT ZERO DELTAARCHSUBCNT ZERO DELTAARCHWCNT ZERO DELTADSOPENCNT ZERO DELTAAVGSIZE ZERO RECWRCNT ZERO DELTABUFULLCNT ZERO DELTA

Derived fields Field CPSM Reset Calculation argsCURFULLPER ZERO REPL,PCTG_INST BUFULLCNT,BLKWRCNTINTFULLPER ZERO REPL,PCTG_INTVL BUFULLCNT,BLKWRCNT

MJRNLNAM

Base fieldsAttribute CPSM Reset CalculationNUMWRITES ZERO DELTANUMBYTES ZERO DELTANUMBUFLUSH ZERO DELTA

MPROGRAM

Base fieldsAttribute CPSM Reset CalculationNEWCOPYCNT ZERO DELTAUSECOUNT ZEROCICS DELTAFETCHCNT ZERO DELTAFETCHTIME ZERO DELTAREMOVECNT ZERO DELTA

Intermediate fieldsField CPSM Reset Calculation argsIMMD_USEMIFETCH REPL,DEDUCT USECOUNT,FETCHCNT

Page 126: CICS Performance Toolkit

126 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

Derived fieldsField CPSM Reset Calculation argsCURUSERATE ZERO REPL,RATE_INST USECOUNTINTUSERATE ZERO REPL,RATE_INTVL USECOUNTCURRUSEPCT ZERO REPL,PCTG_INST USEMIFETCH,USECOUNTINTRUSEPCT ZERO REPL,PCTG_INTVL USEMIFETCH,USECOUNTCURAVGFETCH ZERO REPL,AVG_INST FETCHTIME,FETCHCNTINTAVGFETCH ZERO REPL,AVG_INTVL FETCHTIME,FETCHCNT

MTERMNL

Base fieldsAttribute CPSM Reset CalculationPOLLCNT ZERO DELTAINPMSGCNT ZERO DELTAOUTMSGCNT ZERO DELTATRANCNT ZERO DELTASTGVCNT ZERO DELTAXERRCNT ZERO DELTATERRCNT ZERO DELTAPMSGCNT ZERO DELTAPMSGGRPCNT ZERO DELTAPMSGCONSEC ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCURIMSGRATE ZERO REPL,RATE_INST INPMSGCNTINTIMSGRATE ZERO REPL,RATE_INTVL INPMSGCNTCUROMSGRATE ZERO REPL,RATE_INST OUTMSGCNTINTOMSGRATE ZERO REPL,RATE_INTVL OUTMSGCNTCURTRANRATE ZERO REPL,RATE_INST TRANCNTINTTRANRATE ZERO REPL,RATE_INTVL TRANCNT

MLOCTRAN

Base fieldsAttribute CPSM Reset CalculationRESTARTCNT ZERO DELTAUSECOUNT ZERO DELTASTGVCNT ZERO DELTALOCALCNT ZERO DELTAISOLATEST ZERO DELTAREMSTARTCNT ZERO DELTAREMOTECNT ZERO DELTACPUTIME ZERO ADDMSGIN ZERO ADD

Page 127: CICS Performance Toolkit

127© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

CHARIN ZERO ADDMSGOUT ZERO ADDCHAROUT ZERO ADDMSGINSEC ZERO ADDCHARINSEC ZERO ADDMSGOUTSEC ZERO ADDCHAROUTSEC ZERO ADDALLOCATES ZERO ADDUSTG24CNT ZERO ADDUSTG31CNT ZERO ADDUSTG24HWM ZERO ADDUSTG31HWM ZERO ADDUSTG24OCC ZERO ADDUSTG31OCC ZERO ADDPSTG31HWM ZERO ADDPSTG24HWM ZERO ADDFCGETCNT ZERO ADDFCPUTCNT ZERO ADDFCBRWCNT ZERO ADDFCADDCNT ZERO ADDFCDELCNT ZERO ADDFCCOUNT ZERO ADDFCAMCNT ZERO ADDTDGETCNT ZERO ADDTDPUTCNT ZERO ADDTDPURCNT ZERO ADDTDCOUNT ZERO ADDTSGETCNT ZERO ADDTSPUTACNT ZERO ADDTSPUTMCNT ZERO ADDTSCOUNT ZERO ADDBMSMAPCNT ZERO ADDBMSINCNT ZERO ADDBMSOUTCNT ZERO ADDBMSCOUNT ZERO ADDPCLINKCNT ZERO ADDPCXCTLCNT ZERO ADDPCLOADCNT ZERO ADDJCUSRWCNT ZERO ADDICCOUNT ZERO ADDSYNCCOUNT ZERO ADDDISPTIME ZERO ADDSUSPTIME ZERO ADDWAITTIME ZERO ADDPCLOADTM ZERO ADDEXWAIT ZERO ADDTCIOTIME ZERO ADDFCIOTIME ZERO ADDJCIOTIME ZERO ADDTSIOTIME ZERO ADDIRIOTIME ZERO ADD

Page 128: CICS Performance Toolkit

128 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

TDIOTIME ZERO ADDRESPONSE ZERO ADDCURAVGRESP ZERO ADDINTAVGRESP ZERO ADDCURAVGCPUT ZERO ADDINTAVGCPUT ZERO ADDDISPCNT ZERO ADDCPUCNT ZERO ADDSUSPCNT ZERO ADDWAITCNT ZERO ADDPCLOADWCNT ZERO ADDEXWAITCNT ZERO ADDTCIOCNT ZERO ADDFCIOCNT ZERO ADDJCIOCNT ZERO ADDTSIOCNT ZERO ADDIRIOCNT ZERO ADDTDIOCNT ZERO ADDRSYSID ADDTCM62IN2 ZERO ADDTCC62IN2 ZERO ADDTCM62OU2 ZERO ADDTCC62OU2 ZERO ADDPC24RHWM ZERO ADDPC31SHWM ZERO ADDPC24SHWM ZERO ADDSZALLOCT ZERO ADDSZRCVCT ZERO ADDSZSENDCT ZERO ADDSZSTRTCT ZERO ADDSZCHROUT ZERO ADDSZCHRIN ZERO ADDSZALLCTO ZERO ADDSZRCVTO ZERO ADDSZTOTCT ZERO ADDSZWAIT ZERO ADDDSPDELAY ZERO ADDTCLDELAY ZERO ADDMXTDELAY ZERO ADDENQDELAY ZERO ADDLU61WTT ZERO ADDLU62WTT ZERO ADDRMITIME ZERO ADDRMISUSP ZERO ADDSZWAITCT ZERO ADDDSPDELAYCT ZERO ADDTCLDELAYCT ZERO ADDMXTDELAYCT ZERO ADDENQDELAYCT ZERO ADDLU61WTTCT ZERO ADDLU62WTTCT ZERO ADD

Page 129: CICS Performance Toolkit

129© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

RMITIMECT ZERO ADDRMISUSPCT ZERO ADDDCEDELAYTIME ZERO ADDDCEDELAYCT ZERO ADDDCEWAITTIME ZERO ADDDCEWAITCT ZERO ADDNUMINDOUBWT ZERO ADDFORACTTRNDF ZERO ADDFORACTINDTO ZERO ADDFORACTNOWT ZERO ADDFORACTOPER ZERO ADDFORACTOTHER ZERO ADDACTMISMATS ZERO ADDPERRECNT ZERO ADDSC24SGCT ZERO ADDSC24GSHR ZERO ADDSC24FSHR ZERO ADDSC31SGCT ZERO ADDSC31GSHR ZERO ADDSC31FSHR ZERO ADDJNLWRTCT ZERO ADDLOGWRTCT ZERO ADDSYNCTIME ZERO ADDSYNCTIMCNT ZERO ADDRLSWAIT ZERO ADDRLSWAITCNT ZERO ADDRLSCPUT ZERO ADDRLSCPUCNT ZERO ADDLOCKMWT ZERO ADDLOCKMWC ZERO ADDEXTERNWT ZERO ADDEXTERNWC ZERO ADDCICSWT ZERO ADDCICSWC ZERO ADDINTVLWT ZERO ADDINTVLWC ZERO ADDCTLWT ZERO ADDCTLWC ZERO ADDSHDTSWT ZERO ADDSHDTSWC ZERO ADDICTOTCNT ZERO ADDPCLURMCT ZERO ADDCFDTWT ZERO ADDCFDTWC ZERO ADDSRVSPWT ZERO ADDSRVSPWC ZERO ADDBARSYNCT ZERO ADDBARASYCT ZERO ADDBALKPACT ZERO ADDBADPROCT ZERO ADDBADACTCT ZERO ADD

Page 130: CICS Performance Toolkit

130 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

BARSPACT ZERO ADDBASUPACT ZERO ADDBARMPACT ZERO ADDBADCPACT ZERO ADDBAACQPCT ZERO ADDBATOTPCT ZERO ADDBAPRDCCT ZERO ADDBAACDCCT ZERO ADDBATOTCCT ZERO ADDBARATECT ZERO ADDBADFIECT ZERO ADDBATIAECT ZERO ADDBATOTECT ZERO ADDRUNTRWTT ZERO ADDRUNTRWTC ZERO ADDSYNCDLY ZERO ADDSYNCDLYC ZERO ADDWBRCVCT ZERO ADDWBCHRIN ZERO ADDWBSENDCT ZERO ADDWBCHROUT ZERO ADDWBTOTCT ZERO ADDWBREPWCT ZERO ADDDHCRECT ZERO ADDDHINSCT ZERO ADDDHSETCT ZERO ADDDHRETCT ZERO ADDDHTOTCT ZERO ADDDHTOTDCL ZERO ADDIMSREQCT ZERO ADDDB2REQCT ZERO ADDCHMODECT ZERO ADDQRDISPT ZERO ADDQRDISPC ZERO ADDQRCPUT ZERO ADDQRCPUC ZERO ADDMSDISPT ZERO ADDMSDISPC ZERO ADDMSCPUT ZERO ADDMSCPUC ZERO ADDL8CPUT ZERO ADDL8CPUC ZERO ADDJ8CPUT ZERO ADDJ8CPUC ZERO ADDS8CPUT ZERO ADDS8CPUC ZERO ADDQRMODDLY ZERo ADDQRMODDLC ZERO ADDMXTOTDLY ZERO ADDMXTOTDLC ZERO ADDIMSWAIT ZERO ADD

Page 131: CICS Performance Toolkit

131© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

IMSWAITC ZERO ADDDB2RDYQW ZERO ADDDB2RDYQC ZERO ADDDB2CONWT ZERO ADDDB2CONWC ZERO ADDDB2WAIT ZERO ADDDB2WAITC ZERO ADDGNQDELAY ZERO ADDGNQDELAC ZERO ADDSOIOWTT ZERO ADDSOIOWTC ZERO ADDRRMSWAIT ZERO ADDRRMSWAIC ZERO ADDPCDPLCT ZERO ADDSOBYENCT ZERO ADDSOBYDECT ZERO ADDTCBATTCT ZERO ADDJVMTIME ZERO ADDJVMSUSP ZERO ADDJVMTIMEC ZERO ADDJVMSUSPC ZERO ADD

Derived fieldsField CPSM Reset Calculation argsCURTRANRATE ZERO REPL,RATE_INST USECOUNTINTTRANRATE ZERO REPL,RATE_INTVL USECOUNT

MTASK

Base fieldsAttribute CPSM Reset CalculationSTART NONE NONESTOP NONE NONEMSGIN ADDCHARIN ADDMSGOUT ADDCHAROUT ADDMSGINSEC ADDCHARINSEC ADDMSGOUTSEC ADDCHAROUTSEC ADDALLOCATES ADDTERMSTG ADDUSTG24CNT ADDUSTG31CNT ADDUSTG24HWM ADDUSTG31HWM ADDUSTG24OCC ADD

Page 132: CICS Performance Toolkit

132 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

USTG31OCC ADDPSTG31HWM ADDPSTG24HWM ADDFCGETCNT ADDFCPUTCNT ADDFCBRWCNT ADDFCADDCNT ADDFCDELCNT ADDFCCOUNT ADDFCAMCNT ADDTDGETCNT ADDTDPUTCNT ADDTDPURCNT ADDTDCOUNT ADDTSGETCNT ADDTSPUTACNT ADDTSPUTMCNT ADDTSCOUNT ADDBMSMAPCNT ADDBMSINCNT ADDBMSOUTCNT ADDBMSCOUNT ADDPCLINKCNT ADDPCXCTLCNT ADDPCLOADCNT ADDJCUSRWCNT ADDICCOUNT ADDSYNCCOUNT ADDDISPTIME ADDCPUTIME ADDSUSPTIME ADDWAITTIME ADDPCLOADTM ADDEXWAIT ADDTCIOTIME ADDFCIOTIME ADDJCIOTIME ADDTSIOTIME ADDIRIOTIME ADDTDIOTIME ADDDISPCNT ADDCPUCNT ADDSUSPCNT ADDWAITCNT ADDPCLOADWCNT ADDEXWAITCNT ADDTCIOCNT ADDFCIOCNT ADDJCIOCNT ADDTSIOCNT ADDIRIOCNT ADD

Page 133: CICS Performance Toolkit

133© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

TDIOCNT ADDTCM62IN2 ADDTCC62IN2 ADDTCM62OU2 ADDTCC62OU2 ADDPC24RHWM ADDPC31SHWM ADDPC24SHWM ADDSZALLOCT ADDSZRCVCT ADDSZSENDCT ADDSZSTRTCT ADDSZCHROUT ADDSZCHRIN ADDSZALLCTO ADDSZRCVTO ADDSZTOTCT ADDSZWAIT ADDDSPDELAY ADDTCLDELAY ADDMXTDELAY ADDENQDELAY ADDLU61WTT ADDLU62WTT ADDRMITIME ADDRMISUSP ADDSZWAITCT ADDDSPDELAYCT ADDTCLDELAYCT ADDMXTDELAYCT ADDENQDELAYCT ADDLU61WTTCT ADDLU62WTTCT ADDRMITIMECT ADDRMISUSPCT ADDDCEDELAYTIME ADDDCEDELAYCT ADDDCEWAITTIME ADDDCEWAITCT ADDPERRECNT SC24SGCT SC24GSHR SC24FSHR SC31SGCT SC31GSHR SC31FSHR JNLWRTCT LOGWRTCT SYNCTIME ADDSYNCTIMCNT ADDRLSWAIT ADD

Page 134: CICS Performance Toolkit

134 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

RLSWAITCNT ADDRLSCPUT ADDRLSCPUCNT ADDLOCKMWT ADDLOCKMWC ADDEXTERNWT ADDEXTERNWC ADDCICSWT ADDCICSWC ADDINTVLWT ADDINTVLWC ADDCTLWT ADDCTLWC ADDSHDTSWT ADDSHDTSWC ADDICTOTCNT ADDPCLURMCT ADDCFDTWT ADDCFDTWC ADDSRVSPWT ADDSRVSPWC ADDBARSYNCT ADDBARASYCT ADDBALKPACT ADDBADPROCT ADDBADACTCT ADDBARSPACT ADDBASUPACT ADDBARMPACT ADDBADCPACT ADDBAACQPCT ADDBATOTPCT ADDBAPRDCCT ADDBAACDCCT ADDBATOTCCT ADDBARATECT ADDBADFIECT ADDBATIAECT ADDBATOTECT ADDRUNTRWTT ADDRUNTRWTC ADDSYNCDLY ADDSYNCDLYC ADDWBRCVCT ADDWBCHRIN ADDWBSENDCT ADDWBCHROUT ADDWBTOTCT ADDWBREPWCT ADDDHCRECT ADDDHINSCT ADD

Page 135: CICS Performance Toolkit

135© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

DHSETCT ADDDHRETCT ADDDHTOTCT ADDDHTOTDCL ADDIMSREQCT ADDDB2REQCT ADDCHMODECT ADDQRDISPT ADDQRDISPC ADDQRCPUT ADDQRCPUC ADDMSDISPT ADDMSDISPC ADDMSCPUT ADDMSCPUC ADDL8CPUT ADDL8CPUC ADDJ8CPUT ADDJ8CPUC ADDS8CPUT ADDS8CPUC ADDQRMODDLY ADDQRMODDLC ADDMXTOTDLY ADDMXTOTDLC ADDIMSWAIT ADDIMSWAITC ADDDB2RDYQW ADDDB2RDYQC ADDDB2CONWT ADDDB2CONWC ADDDB2WAIT ADDDB2WAITC ADDGNQDELAY ADDGNQDELAC ADDSOIOWTT ADDSOIOWTC ADDRRMSWAIT ADDRRMSWAIC ADDPCDPLCT ADDSOBYENCT ADDSOBYDECT ADDTCBATTCT ADDJVMTIME ADDJVMTIMEC ADDJVMSUSP ADDJVMSUSPC ADD

Intermediate fieldsField CPSM Reset Calculation args

Page 136: CICS Performance Toolkit

136 © 2002. Xephon UK telephone 01635 33848, fax 01635 38345. USA telephone (303) 410 9344, fax (303) 438 0290.

PFXA_CPUTIME ADD CPUTIMEIMMD_STOPMISTART REPL,STCKDIFF STOP,START

Derived fieldsField CPSM Reset Calculation argsRESPONSE REPL,TALLY STOPMISTARTPFXA_RESPONSE REPL,TALLY STOPMISTARTCURAVGRESP ZERO REPLO,AVG_INST PFXA_RESPONSE,@ALTINTERVALINTAVGRESP ZERO REPL,AVG_INTVL RESPONSE,@ALTINTERVALCURAVGCPUT ZERO REPL,AVG_INST PFXA_CPUTIME,@ALTINTERVALINTAVGCPUT ZERO REPL,AVG_INTVL CPUTIME,@ALTINTERVAL

MREMTRAN

Base fieldsAttribute CPSM Reset CalculationREMOTECNT ZERO DELTAUSECOUNT ZERO DELTAREMSTARTCNT ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCURTRANRATE ZERO REPL,RATE_INST USECOUNTINTTRANRATE ZERO REPL,RATE_INTVL USECOUNTCURAVGRESP ZERO REPL,RATE_INST RESPTIME,USECOUNTINTAVGRESP ZERO REPL,RATE_INTVL RESPTIME,USECOUNT

MXTRATDQ

Base fieldsAttribute CPSM Reset CalculationOUTCNT ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCUROUTQRATE ZERO REPL,RATE_INST OUTCNTINTOUTQRATE ZERO REPL,RATE_INTVL OUTCNT

MNTRATDQ

Base fieldsAttribute CPSM Reset Calculation

Page 137: CICS Performance Toolkit

137© 2002. Reproduction prohibited. Please inform Xephon of any infringement.

OUTCNT ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCUROUTQRATE ZERO REPL,RATE_INST OUTCNTINTOUTQRATE ZERO REPL,RATE_INTVL OUTCNT

MREMTDQ

Base fieldsAttribute CPSM Reset CalculationOUTCNT ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCUROUTQRATE ZERO REPL,RATE_INST OUTCNTINTOUTQRATE ZERO REPL,RATE_INTVL OUTCNT

MINDTDQ

Base fieldsAttribute CPSM Reset CalculationOUTCNT ZERO DELTA

Derived fieldsField CPSM Reset Calculation argsCUROUTQRATE ZERO REPL,RATE_INST OUTCNTINTOUTQRATE ZERO REPL,RATE_INTVL OUTCNT

MDB2THRD

Derived fieldsField CPSM Reset Calculation argsCURUSERATE ZERO REPL,RATE_INST USECOUNTINTUSERATE ZERO REPL,RATE_INTVL USECOUNT

Dr Paul JohnsonCICS Transaction Server Systems Management Planning/DevelopmentIBM (UK) © IBM 2002