How do I gain access to the monitor data in a real-time environment for using and seeing the performance information (i.e. counts, averages, etc)? Will the EXEC CICS COLLECT STATISTICS MONITOR function assist me? How do I locate the user define clocks, counters, etc.?
It looks to me that you have sorted out what you want to monitor by setting up the counts, timers and data field in the MCT definition. [For everyone else, counts and timers are automatically recorded, started and stopped by the monitoring ID set in the MCT while data fields are supplied on the XC MONITOR calls dotted around in the code that is to be kept track of.]
If you are accumulating monitoring info which applies across CICS tasks, you need to give some thought as to where the source of this shared info resides and ensure that it is protected against double accesses (in CTS 2.2 multiple TCBs are around so the same bit of code has the potentialy to be running twice -- so one can end up in a double-update data-mismatch unless access is critical sectioned).
You should be aware that the monitoring data is treated in several ways. This type of monitoring data is associated with a CICS task in memory and then copied to SMF buffers at the end of the transaction (you can additionally set an earlier completion-type when a monitoring point with the DELIVER option is encountered which writes the data to a SMF buffer and resets the counters, etc.). This writing to an SMF buffer also occurs on XC SYNCPOINT commands. The actual data gets written to SMF when a SMF buffer gets full.
You process the data held in SMF offline using the supplied CICS jobs (DFHMNDUP to generate the names of the counters/clocks and DFH?MOLS to print the records on a selective basis) or something like the new CICS performance analyser (plug, plug) tool. There are vendor tools around as well.
Online, you can use (another blatently obvious plug coming up) the new CICS Peformance Analyser tool to see what is going on (other vendor tools are available).
Be aware that if you are using XC COLLECT STATISTICS MONITOR, you get the monitoring data currently being accumulated if the task has already sent some info to the SMF buffers (XC SYNCPOINT or DELIVER etc.) then this does not appear. You only get whatever is being built for subsequent transmission to an SMF buffer. This may not be relevant to you. It basically depends on the use of XC SYNCPOINTs in the application code. Consequently, this command only works for currently executing tasks.
If you want to ensure that everything including that previously sent to the SMF buffers is available to you within the CICS region, then you will have to get into looking and accumulating the info as it gets passed to SMF via the relevant GLUE and merging that with the latest info obtained from XC COLLECT STATISTICS (browsing for all tasks). This will probably be overkill -- and you will almost certainly be better off by not doing this yourself.
Dig Deeper on IBM system z and mainframe systems
Related Q&A from Robert Crawford
For better mainframe capacity planning, how do I convert CPU hours to MIPS? And is there a way to calculate the relationship between MIPS and MSUs? Continue Reading
I have two years of experience in mainframe technology, currently working as a mainframe developer. I want to change to Java technology. Continue Reading
I want to replicate DB2 from the mainframe to an AIX box since it's cheaper and the copy can be used for testing. Is this possible? Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.