Step 5 – Process SMF data - syncsort_cobol_migration_manager - syncsort_clone_center - syncsort_space_recovery_system - syncsort_scc_monitor - syncsort_simulate_2000 - syncsort_allocation_control_center - Latest

Syncsort™ Storage Management COBOL Migration Manager Getting Started Guide

Product type
Software
Portfolio
Integrate
Product family
Syncsort™ software
Product
Syncsort™ Storage Management > Syncsort™ Cobol Migration Manager
Version
Latest
ft:locale
en-US
Product name
Syncsort Storage Management
ft:title
Syncsort™ Storage Management COBOL Migration Manager Getting Started Guide
Copyright
2026
First publish date
1991
ft:lastEdition
2026-04-01
ft:lastPublication
2026-04-01T09:38:56.544000
L1_Product_Gateway
Integrate
L2_Product_Segment
IBM Infrastructure
L3_Product_Brand
Precisely Syncsort
L4_Investment_Segment
Mainframe
L5_Product_Group
Mainframe Storage Optimization
L6_Product_Name
Syncsort Storage Management

A SMF record is written each time a module is referenced.

We recommend waiting a while to get meaningful results. Depending on your operations this can range from 1 day to pick up nightly jobs to one week, quarter, etc. to pick up rarely used but vital programs. The longer the monitoring runs the more complete the results.

Before running reports, run job CMMSMFP to update the PROGI dataset.
//JOBNAME JOB ... (RC=0 EXPECTED)
//*
//*  THIS JOB POPULATES THE LOADED PROGRAMS INVENTORY DATA SET FROM
//*  SMF RECORDS. THE FOLLOWING JCL REQUIRES SEVERAL MODIFICATIONS
//*  BEFORE THE JOB CAN BE SUBMITTED.
//*
//*    1) JOBCARD  - USE A VALID JOBCARD FOR YOUR ENVIRONMENT
//*    2) SMFRID   - SPECIFY THE SMF RECORD ID FROM CMMRULES
//*    3) STEPLIB  - SPECIFY THE DTS.LOADLIB DATA SET NAME
//*    4) SMFFILE  - SPECIFY THE SMF DUMP DATA SET WHICH CONTAINS
//*                  THE DUMPED SMF RECORDS
//*    5) CMMEXCL  - CONTAINS DATA SET AND VOLUME COMBINATIONS THAT
//*                  WERE IN THE SMF DATA BUT NOT IN PROGI                  
//*    6) DISCARD  - OPTIONAL FILE THAT CONTAINS REJECTED RECORDS
//*            UNCOMMENT '<== ACT' STATEMENTS TO USE
//*
//STEP01       EXEC PGM=IEFBR14
//DD1          DD   DISP=(MOD,DELETE),DSN=DTS.R72.ONLY.CMMSMF,
//             UNIT=SYSALLDA,SPACE=(TRK,(1,1))
//DD2          DD   DISP=(MOD,DELETE),DSN=DTS.R72.SORTED.CMMSMF,
//             UNIT=SYSALLDA,SPACE=(TRK,(1,1))
//DD3          DD   DISP=(MOD,DELETE),DSN=DTS.R72.CMMEXCL,
//             UNIT=SYSALLDA,SPACE=(TRK,(1,1))            
//*DD4         DD   DISP=(MOD,DELETE),DSN=DTS.R72.CMMDISC,   <== ACT
//*            UNIT=SYSALLDA,SPACE=(TRK,(1,1))               <== ACT
//*
//*  EXTRACT CMM RECORDS FROM SMF
//*
//EXTRACT1     EXEC PGM=SORT                                                
//SYSOUT       DD   SYSOUT=*                                                  
//SORTIN       DD      DISP=SHR,DSN=smf.dump.data                  
//SORTOUT      DD      DSN=DTS.R72.ONLY.CMMSMF,                                  
//            DISP=(NEW,CATLG,DELETE),                                  
//            SPACE=(CYL,(100,100)),UNIT=(SYSDA,5)                      
//SYSIN    DD *                                                          
  OPTION VLSCMP                                                          
  SORT FIELDS=COPY                                                      
  INCLUDE COND=(6,1,CH,EQ,X'C9',AND,                                    
                109,4,CH,EQ,C'SRH',AND,                                
                41,8,CH,EQ,C'CMM     ',AND,                            
                53,8,CH,EQ,C'MESSAGE ')    
/*                                                                      
//EXTRACT2     EXEC    PGM=CMMSMFDP,PARM='SMFRID(201)',REGION=0M
//STEPLIB      DD      DISP=SHR,DSN=DTS.R72.LOADLIB
//SYSPRINT     DD      SYSOUT=*
//SMFFILE      DD      DISP=SHR,DSN=DTS.R72.ONLY.CMMSMF
//CMMEXCL      DD      DISP=(NEW,CATLG),DSN=DTS.R72.CMMEXCL,
//             LRECL=50,UNIT=SYSALLDA,SPACE=(CYL,(10,10)),  
//             DCB=BLKSIZE=27900,RECFM=FB                  
//*DISCARD     DD      DISP=(NEW,CATLG),DSN=DTS.R72.CMMDISC, <== ACT
//*            LRECL=500,UNIT=SYSALLDA,SPACE=(CYL,(10,10)),  <== ACT
//*            DCB=BLKSIZE=27000,RECFM=FB                    <== ACT
//PROGI        DD      DISP=SHR,DSN=DTS.R72.PROGI
//*
//*  SORT CMMEXCL RECORDS
//*
//SORTEXCL     EXEC    PGM=SORT
//SYSOUT       DD      SYSOUT=*
//SORTIN       DD      DISP=SHR,DSN=DTS.R72.CMMEXCL
//SORTOUT      DD      DISP=SHR,DSN=DTS.R72.CMMEXCL
//SYSIN        DD      *
 SORT FIELDS=(1,44,CH,A,45,6,CH,A)
/*
//