[z/OS]

Using CSQ4LOGS to process output from CSQ1LOGP EXTRACT

The CSQ4LOGS sample can process the output from CSQ1LOGP EXTRACT. The sample reports on unit of work activity, and on activity that defines and alters objects.

CSQ4LOGS can also optionally replay messages, which is useful in scenarios where an application does not process a persistent message correctly.

CSQ4LOGS is a C sample, with source code in thlqual.SCSQC37S(CSQ4LOGS). Compiled output is in thlqual.SCSQLOAD(CSQ4LOGS), which can be run using sample JCL from thlqual.SCSQPROC(CSQ4LOGJ).

CSQ4LOGS makes use of a header file thlqual.SCSQC370(CSQ4LOGD), which maps the output from CSQ1LOGP EXTRACT. That header file can be used for your own programs, based off CSQ4LOGS.
Important: You should not run the CSQ4LOGS program from an APF authorized library. In some circumstances you receive an abend code if you do so.

CSQ4LOGS parameters

CSQ4LOGS takes two parameters:
  • The queue manager name to which the sample connects
  • An action:
    REPLAY
    Summarize unit of recovery activity and send messages back to the queue they were originally put on.
    REPLAY_ORIGINAL
    Summarize unit of recovery activity and send messages back to the non-system queue they were originally put on, using their original message descriptor context.
    SUMMARY
    Summarize unit of recovery activity.
Warning: Before making use of REPLAY or REPLAY_ORIGINAL, ensure that you want all messages passed into CSQ4LOGS to be sent back to their original queue.
The following sample JCL shows how CSQ1LOGP can be used to extract committed messages from the IBM® MQ log to the xxx.MSGS.COMMIT data set and replay them to queue manager MQST using CSQ4LOGS.
Figure 1. Sample JCL for using CSQ1LOGP and CSQ4LOGS together
  
//STEP1 EXEC PGM=CSQ1LOGP,REGION=0M 
//STEPLIB DD DISP=SHR,DSN=thlqual.SCSQANLE 
//        DD DISP=SHR,DSN=thlqual.SCSQAUTH
//        DD DISP=SHR,DSN=thlqual.SCSQLOAD
//ARCHIVE DD DISP=SHR,DSN=xxx.yyy.A0030620 
//        DD DISP=SHR,DSN=xxx.yyy.A0030621 
//SYSPRINT DD SYSOUT=* 
//SYSSUMRY DD SYSOUT=* 
//CSQCMT DD DSN=xxx.MSGS.COMMIT, 
// DISP=(NEW,CATLG),SPACE=(CYL,(1,10),RLSE),UNIT=SYSDA 
//SYSIN DD * 
EXTRACT(YES) SUMMARY(NO) 
URID(xxxxxxxxxxxx) 
/* 
//STEP2 EXEC PGM=CSQ4LOGS,PARM=('MQST REPLAY'),REGION=0M 
//STEPLIB DD DSN=thlqual.SCSQANLE,DISP=SHR 
//        DD DSN=thlqual.SCSQAUTH,DISP=SHR 
//        DD DSN=thlqual.SCSQLOAD,DISP=SHR 
//FILEIN DD DSN=xxx.MSGS.COMMIT,DISP=SHR 
//SYSDBOUT DD SYSOUT=* 
//SYSABOUT DD SYSOUT=* 
//SYSPRINT DD SYSOUT=* 
//SYSOUT DD SYSOUT=* 
/*