Archive

Archive for the ‘debug’ Category

CICSPlex SM traces

May 27, 2008 Grant 2 comments

To an experienced CICS user, CICSPlex SM traces can seem weird compared to ‘vanilla’ CICS traces, so I am going to try and explain what is going on with them.

First a little bit of history

When CICSPlex SM was first introduced it was a separately orderable product – it was not part of the CICS TS package (the CICS TS package did not exist!). Because of this, the CICSPlex SM developers had to play by the rules (to keep the IBM lawyers happy), in that it had to use only published CICS interfaces, e.g. using the standard CICS APIs/SPIs and only programming interfaces that could be determined from the publicly available CICS documentation.

As the interface into CICS tracing is EXEC CICS ENTER TRACENUM, that is what CICSPlex SM uses to write trace records. This is also why CICSPlex SM trace records appear to CICS as so called ‘user’ trace records.

Read more…

Categories: CICSPlex SM, debug

Using MVS SLIP to detect memory changes

Every now and then you come across a problem that you just can’t fix with the tools in your toolbelt. The problem? How to detect what part of your program is changing a specific area of storage? The program in question being CICSPlex SM and the storage a 1 byte flag stored in a MVS dataspace. A code search only proved that the flag was not being modified anywhere obvious and a trace of the suspect modules proved unhelpful.

So failing to batter the problem into submission with the normal tools, a kind colleague pointed me at the MVS SLIP (Serviceability Level Indication Processing) operator command. A few painful moments passed as the correct command incantation was established and lo and behold I received a dump with the PSW pointing handily at the module that changed the storage location. Thankfully we use eye-catchers at the top of each internal method so detecting the module is simply a matter of browsing the dump at the address suggested and scrolling up.

Generally within the CICS TS team the most commonly used tools for debugging problems are CEMT, CECI, IPCS, AUX trace and an internal interactive debugging tool called Source Language Debug (SLD). In CICSPlex SM development/service we also use the customer-provided COD0 transaction to quickly walk-around the system control blocks and dump out specific data.

The SLIP command is definitely one tool I’ll be adding to my toolbelt. What tools can you not live without?

Categories: CICSPlex SM, MVS, SLIP, debug