Sysplex reporting across time zones

If you have a sysplex with several processors running in different time zones, this results in different time stamps in the SMF records. Therefore, the Postprocessor does not recognize that these records belong to the same interval when creating a sysplex report. You can solve this problem by calling program ERBCHGMT which updates the time stamps during Postprocessor processing.

A sample job supplied with RMF™ in SYS1.SAMPLIB(ERBGMTPP) for updating the Postprocessor input is available.

ERBGMTPP contains the following job steps:

  1. SMFDUMP extracts the SMF records from the input data sets and makes sure that the output file has the correct DCB attributes.

    If you want to process SMF records from SMF log streams, use the IFASMFDL program instead of IFASMFDP for SMF data sets.

    If you want to process SMF records from the SMF data buffer, use the RMF-supplied program ERBAPPL.

  2. CHGGMT changes the GMT offset in the input data sets to a common value. The parameter in the PARM field of program ERBCHGMT determines the GMT offset (in minutes) for the output data set.

    Examples:

    • PARM='+0' creates GMT time in all time stamps in the Postprocessor.
    • PARM='-300' creates GMT time minus 5 hours (Eastern time US, Canada)
    • PARM='+60' creates GMT time plus 1 hour (Middle European winter time)
  3. RMFSORT sorts the modified input data set(s) by RMF date and time. This step is required.
  4. RMFPP invokes the Postprocessor.
Figure 1. JCL example for preparing SMF records

Working with SMF data sets 

//ERBGMTPP JOB job information,REGION=0M
//*
//* DUMP SMF DATATSET(S)
//*
//SMFDUMP  EXEC PGM=IFASMFDP
//IDD1     DD   DISP=SHR,DSN=<input_smfdata_system1>
//IDD2     DD   DISP=SHR,DSN=<input_smfdata_system2>
//         :
//IDDN     DD   DISP=SHR,DSN=<input_smfdata_systemN>
//SMFDATA  DD   DISP=(NEW,PASS),SPACE=(CYL,(10,10),RLSE),
//         UNIT=SYSDA,DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=0)
//SYSPRINT DD   SYSOUT=*
//SYSIN    DD   *
       INDD(IDD1,OPTIONS(DUMP))
       INDD(IDD2,OPTIONS(DUMP))
       :
       INDD(IDDN,OPTIONS(DUMP))
       OUTDD(SMFDATA,TYPE(70:79,103,108))
//*
//* UPDATE GMT OFFSET
//*
//CHGGMT   EXEC PGM=ERBCHGMT,PARM='-300'
//SMFDATA  DD   DISP=(OLD,DELETE),DSN=*.SMFDUMP.SMFDATA
//SMFCHGMT DD   DISP=(NEW,PASS),SPACE=(CYL,(10,10),RLSE),
//         UNIT=SYSDA,DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=0)
//SYSPRINT DD   SYSOUT=*
//*
//* SORT THE SMF RECORDS
//*
//RMFSORT  EXEC PGM=SORT
//SORTIN   DD   DISP=(OLD,DELETE),DSN=*.CHGGMT.SMFCHGMT
   .
   .
//SYSIN    DD   *
  SORT FIELDS=(11,4,CH,A,7,4,CH,A,15,4,CH,A),EQUALS
  MODS E15=(ERBPPE15,36000,,N),E35=(ERBPPE35,3000,,N)
//*
//*        RMF POSTPROCESSING
//*
//RMFPP    EXEC PGM=ERBRMFPP
//MFPINPUT DD   DISP=(OLD,DELETE),DSN=*.RMFSORT.SORTOUT
   :

Working with the SMF buffer (first step) 

//SMFDUMP  EXEC PGM=ERBAPPL,PARM='*/*/70:79,103,108'
//SMFDATA  DD   DISP=(NEW,PASS),UNIT=SYSDA,SPACE=(CYL,(10,10))
//ERBLIST  DD   DUMMY