Problem solve Get help with specific problems with your technologies, process and projects.

Finding executed statements in CICS

Expert Robert Crawford discusses several ways to find out which LINK/XCTL/CALL statements are executed during online testing in CICS.

Is there a way to find out the LINK/XCTL/CALL statements that got executed as part of online testing (not in debugging mode)? The objective is to ensure that all the called routines need to be tested (maximum code coverage). In batch we have DISPLAY command, which writes it to the log to simplify this. Is there a similar way out for onlines as well?

There's more than one way to do this.

I'm assuming DISPLAY to be the COBOL verb, but this also works for PL/1 PUT statements and C printf() calls. Put descriptive DISPLAY commands in your online programs. The output will go to the CEEOUT DD card in CICS, which you can analyze after the test. This takes a little bit of labor and you should be sure to remove the DISPLAYs before the programs go to production.

You can use CICS statistics. Ask your systems programmer to use the CEMT command to record and reset the statistics. This will set all the programs "times used" counters to zero. Run your test. After testing is complete ask the systems programmer to record and reset the statistics again. Once the statistics are recorded the systems programmer can use utility program DFHSTUP to print the loader domain statistics. The loader domain will have details for how many times each program was linked, XCTLed or loaded.

Before the test, use CEMT to look at the program use count for all the load modules. Run the test, then look at all the program use counters again. The difference should be the number of times the program was used. This is kind of a brute force approach that will take a lot of time depending on how many programs you're talking about.

Run an auxiliary trace while you test your application. Your systems programmer can print the trace, which you can go through looking for the CICS LINK, LOAD and XCTL commands. This one is also a bit labor intensive.

A couple of vendors offer software that runs in the background while keeping track of everything a transaction touches. You could use this software to generate a list of all the transaction activity during the test. This is probably the easiest of the solutions, but you have to spend the money for the software.

Dig Deeper on IBM system z and mainframe systems

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.