Question & Answer
Question
How do I combine a GTF trace of CICS and Component Trace of System SSL in one report? When debugging a CICS SSL problem it can be useful to combine a GTF trace of CICS and SSL CTRACE into one report in order to examine them together.
Answer
The following steps are required to merge GTF trace of CICS and SSL CTRACE:
GTF Trace of CICS
In CICS, activate System Trace and GTF trace using transaction CETR. Make sure that appropriate trace flags are set.
CETR CICS Trace Control Facility Type in your choices. Item Choice Possible choices Internal Trace Status ===> STOPPED STArted, STOpped Auxiliary Trace Status ===> STARTED STArted, STOpped, Paused GTF Trace Status ===> STARTED STArted, STOpped Master System Trace Flag ===> ON ON, OFf When finished, press ENTER. PF1=Help 3=Quit 4=Components 5=Ter/Trn 9=Error List |
Start the GTF trace task. In this case, I use a name of CICSGTF and pass in a variable to set the dataset name. The GTF task can be found in SYS1.PROCLIB.
S GTF.CICSGTF,ID=CICSGTF
The GTF task issues a WTOR to allow you to specify options.
R 866,TRACE=USRP,SYS,DSP,JOBNAMEP
Another WTOR appears.
R 867,USR=(F6C,F44),JOBNAME=JOA0W052,END
F6C is CICS. F44 is RACF. The Jobname "JOA0W052" refers to the CICS region, which is my CICSPlex SM WUI Server. A final WTOR is entered, to which you should reply "U" to indicate that you are done.
R 868,U
GTF trace is now running.
Component Trace of System SSL
System SSL does not support GTF trace, but instead requires component tracing. This is detailed in the
z/OS Cryptographic Services System Secure Sockets Layer Programming Guide, chapters 11 and 12.
IBM Technote How to capture and format SSL component trace might also be useful.
You need to activate the GSKSRVR started task. The started task will need appropriate RACF
configuration in class STARTED. A sample can be found in hlq.SGSKSAMP(GSKSRVR).
You need to create a CTRACE writer. This must either be a PROC in SYS1.PROCLIB (the JES
concatenation DOES NOT WORK, it MUST be SYS1.PROCLIB), or a JOB in the JOBLIST in
SYS1.PARMLIB. “The trace writer proc (GSKWTR) must be stored in a system PROCLIB. This is not the
same as a JES2 or JES3 PROCLIB. Trace writers must be in a dataset that is part of the IEFPDSI
PROCLIBs in MSTJCL00”. If not, the job will not start or run, and you will NOT see it in the Held Output
Queue. You will see messages in the System Log that the PROC could not be found.
A sample can be found in hlq.SGSKSAMP(GSKWTR).
Having done that, enter the following command to activate Component Trace, assuming you have
sufficient RACF authority to do so.
TRACE CT,ON,COMP=GSKSRVR
A WTOR appears.
R n,JOBNAME=(JOA0W052),OPTIONS=(LEVEL=255),WTR=GSKWTR,END
The GSKWTR task will now be visible.
Perform the Testing
In this case, I logged on to my CICSPlex SM Web User Interface server using a browser and SSL
Stop the traces
Enter the following command to stop GTF tracing. We called the GTF trace job CICSGTF, so we need
to enter STOP to stop it.
P CICSGTF
Enter the following commands to deactivate component trace and to stop the CTRACE writer.
TRACE CT,OFF,COMP=GSKSRVR
TRACE CT,WTRSTOP=GSKWTR
Start IPCS
Enter the following IPCS commands from option 6.
MERGE
IPCS prompts you to enter commands, or to type MERGEEND.
CTRACE COMP(GSKSRVR) FULL DSN('CTSSVT.GSKWTR.TRACE01') LOCAL
GTF trace assumes local time, so specify local time for CTRACE as well. Use the trace files from the
GSKWTR task. You can enter as many of these as you have trace files.
CTRACE COMP(GSKSRVR) FULL DSN('CTSSVT.GSKWTR.TRACE02') LOCAL
CTRACE COMP(GSKSRVR) FULL DSN('CTSSVT.GSKWTR.TRACE03') LOCAL
CTRACE COMP(GSKSRVR) FULL DSN('CTSSVT.GSKWTR.TRACE04') LOCAL
CTRACE COMP(GSKSRVR) FULL DSN('CTSSVT.GSKWTR.TRACE05') LOCAL
CTRACE COMP(GSKSRVR) FULL DSN('CTSSVT.GSKWTR.TRACE06') LOCAL
CTRACE COMP(GSKSRVR) FULL DSN('CTSSVT.GSKWTR.TRACE01') LOCAL
Enter the GTFTRACE with the USR(ALL) flag to format CICS trace in GTF trace. Use the dataset from
the GTF task.
GTFTRACE DSN('CICSGTF.GTF.TRACE') USR(ALL)
Enter MERGEEND to get the final report.
MERGEEND
Merge and format trace
Here is a sample batch job that can be used to merge and format the combined trace:
//ITS325T1 JOB
//**********************************************************************
//* This job will merge and format a GTF-SSL trace and a CICS-GTF trace
//* Always use DSNAME, as DDNAME does not work.
//*
//****************************************************************
//IPCS EXEC PGM=IKJEFT01,REGION=4096K,DYNAMNBR=50
//STEPLIB DD DISP=SHR,DSN=ITSDBCP.CICSV52.DFHLINK <--Needed!
//IPCSDDIR DD DISP=SHR,DSN=ITS325.ITSOSSP.DDIR
//IPCSDOC DD SYSOUT=*
//JRASTRC DD DUMMY <--This is ok!
//IPCSPRNT DD SYSOUT=*
//SYSTSPRT DD DSN=ITSCUSP.CICSD010.GTFTRACE.FORM5,
// DISP=(NEW,CATLG),SPACE=(TRK,(2,2)),RECFM=VB,LRECL=145
//SYSTSIN DD
*
IPCS
PROFILE LINESIZE(80)PAGESIZE(99999999)
SETDEF
NOCONFIRM
MERGE
CTRACE FULL COMP(GSKSRVR) DSNAME('ITSNET1D.PTTCP.G0022V00') LOCAL
GTFTRACE DSNAME('ITSNET1D.GTF.G0002V00') USR(ALL) +
CICS((FULL,TYPETR=(SO0201-0202),TYPETR=(XM1101,DS0002)))
MERGEEND
END
/*
//
CTRACE FULL DSNAME is the DSN for the SSL trace.
GTFTRACE DSNAME is the DSN for the CICS GTF trace.
Product Synonym
CICS/TS CICS TS CICS Transaction Server
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg22001942