Log Edit (IMFLEDIT) JCL statements
Statement | Description |
---|---|
EXEC | Specifies the name of the Log Edit program (PGM=IMFLEDIT) The region requirement could be affected by the:
You can add the PARM=’nn’ parameter to the EXEC statement to designate an alternate member name. For example, to designate IMFLEP01, you would include PARM='01' in the EXEC statement. If the nn value is not two characters long, the 00 default value is used. If the resulting member is not found, IMFLEDIT stops with a return code of 32. |
STEPLIB DD | Defines the program library containing the IMFLEDIT program load module (BMC.AMIOPS.SPE2210) If you specify SYSIN DD, you must concatenate IMS RESLIB in STEPLIB DD for the DBRC API to function. The IMS version of the RESLIB must support the specified RECON data set. |
SORTLIB DD | Defines the sort program library (such as DFSORT) This statement is used only when IMFLEDIT is being run for shared message queues (SMQ=YES). |
LOGFILE DD | Defines the IMS log data set to be processed by the IMFLEDIT program If several log files are concatenated, they must be in chronological order, unless IMFLEDIT is being run for shared message queues. When IMFLEDIT is being run for shared message queues (SMQ=YES in IMFLEP00), logs from all IMS systems are concatenated to the LOGFILE DD. When SMQ=YES, logs do not have to be concatenated in chronological order, but the run performs better if they are. If the log is in VBS format, specify the following syntax: DCB=RECFM=VBS (BMC.AMIOPS.SPE2210) If you specify SYSIN DD, the LOGFILE DD is ignored. The system log data sets (SLDSs) are dynamically allocated based on a date-time range ,and the SLDS mentioned in LOGFILE DD is ignored. |
Specifies the RECON data set names, IMSID, and a time frame to create the IRUF. Enter the following information in the SYSIN DD statement:
RECON1 is the data set name of RECON1. RECON2 is the data set name of RECON2. IMSID is the IMS ID. If IMSIDs are using shared-queue and they are active, you can specify IMSID=ALL. TIME FROM and TO is the time range that is used to extract SLDS from RECON by using DBRC API. DATE FROM and TO is the date range that is used to extract SLDS from RECON by using DBRC API. The DATE card is optional. If you don't specify it, the date of the current system is picked. | |
RESUTIL DD | Defines the IRUF to be created |
AUDITS DD | Defines the message data set containing the Log Edit Audit Report |
RTAUDIT DD | Defines the data set to which the selected records are written If the SELREC input parameter is specified |
FAUTIL DD | Contains all transaction (X'FA') records encountered in the LOGFILE Before writing the transaction records, IMFLEDIT adjusts the time stamps in the transaction records so that they remain consistent with the corresponding time stamps in the transaction accounting records (TARs) written to the IRUF (including the time stamp related to MSGSWIQT). |
IMFPARM DD | Defines the BMC AMI Ops Monitor for IMS Offline parameter (BBPARM) library |
ERRORS DD | Defines the data set containing the Log Edit Error Report |
SYSOUT DD | Defines the data set in which DFSORT writes its error messages and performance statistics This statement is used only when IMFLEDIT is being run for shared message queues (SMQ=YES). |
SORTDIAG DD | Specifies that the IMFLEDIT internal call to DFSORT will cause the sorting performance statistics to be printed on the SYSOUT DD The statistics are useful for tuning SORTWK01, SORTWK02, and SORTWK03 to improve DFSORT performance. This statement is used only when IMFLEDIT is being run for shared message queues (SMQ=YES). |
SORTWK01 SORTWK02 SORTWK03 | Defines work data sets for sorting shared message queue logs when SMQ=YES is set in IMFLEP00 You should always allocate space in cylinders and set it so that no secondary allocation is used. You should put these statements on different channel paths, and you should allocate them on the same type of device. |
IMFLEDIT JCL example
//STEP1 EXEC PGM=IMFLEDIT,REGION=4096K
//STEPLIB DD DSN=IMF.LOAD,DISP=SHR
//SORTLIB DD DSN=&SORTLIB,DISP=SHR
//LOGFILE DD DSN=IMSLOG,VOL=SER=......,DISP=OLD,UNIT=tape
//RESUTIL DD DSN=IRUF.DAYS(+1),DISP=(NEW,CATLG),UNIT=tape,
// DCB=(RECFM=VBS,LRECL=30970,BLKSIZE=30974,BUFNO=100)
//AUDITS DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//RTAUDIT DD DSN=XO7REC,DISP=(NEW,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(2,1)),
// DCB=(RECFM=VB,LRECL=2400,BLKSIZE=4524)
//IMFPARM DD DSN=IMF.BBPARM,DISP=SHR
//ERRORS DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//SYSUDUMP DD SYSOUT=A
IMFLEDIT JCL example when SMQ=YES
//STEP1 EXEC PGM=IMFLEDIT,REGION=4096K
//STEPLIB DD DSN=IMF.LOAD,DISP=SHR
//SORTLIB DD DSN=&SORTLIB,DISP=SHR
//LOGFILE DD DSN=IMSLOG,VOL=SER=......,DISP=OLD,UNIT=tape
//RESUTIL DD DSN=IRUF.DAYS(+1),DISP=(NEW,CATLG),UNIT=tape,
// DCB=(RECFM=VBS,LRECL=30970,BLKSIZE=30974,BUFNO=100)
//AUDITS DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//IMFPARM DD DSN=IMF.BBPARM,DISP=SHR
//ERRORS DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//SYSUDUMP DD SYSOUT=A
//SYSOUT DD SYSOUT=*
//SORTDIAG DD DUMMY
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(50))
//SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(50))
//SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,(50))
IMFLEDIT JCL example when FAUTIL=YES
//STEP1 EXEC PGM=IMFLEDIT,REGION=4096K
//STEPLIB DD DSN=IMF.LOAD,DISP=SHR
//SORTLIB DD DSN=&SORTLIB,DISP=SHR
//LOGFILE DD DSN=IMSLOG,VOL=SER=......,DISP=OLD,UNIT=tape
//RESUTIL DD DSN=IRUF.DAYS(+1),DISP=(NEW,CATLG),UNIT=tape,
// DCB=(RECFM=VBS,LRECL=30970,BLKSIZE=30974,BUFNO=100)
//AUDITS DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//RTAUDIT DD DSN=XO7REC,DISP=(NEW,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(2,1)),
// DCB=(RECFM=VB,LRECL=2400,BLKSIZE=4524)
//FAUTIL DD DSN=&INDEX..IMF.FAUTIL,DISP=(NEW,CATLG),
// UNIT=&DASUNIT,SPACE=(TRK,(5,1)),
// DCB=(RECFM=VB,LRECL=2400,BLKSIZE=4524)
//IMFPARM DD DSN=IMF.BBPARM,DISP=SHR
//ERRORS DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//SYSUDUMP DD SYSOUT=A
IMFLEDIT JCL example when you specify SYSIN DD
//STEP1 EXEC PGM=IMFLEDIT,REGION=4096K
//STEPLIB DD DSN=IMF.LOAD,DISP=SHR
// DD DSN=IMS.SDFSRESL,DISP=SHR
//SORTLIB DD DSN=&SORTLIB,DISP=SHR
//RESUTIL DD DSN=IRUF.DAYS(+1),DISP=(NEW,CATLG),UNIT=tape,
// DCB=(RECFM=VBS,LRECL=30970,BLKSIZE=30974,BUFNO=100)
//AUDITS DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//RTAUDIT DD DSN=XO7REC,DISP=(NEW,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(2,1)),
// DCB=(RECFM=VB,LRECL=2400,BLKSIZE=4524)
//FAUTIL DD DSN=&INDEX..IMF.FAUTIL,DISP=(NEW,CATLG),
// UNIT=&DASUNIT,SPACE=(TRK,(5,1)),
// DCB=(RECFM=VB,LRECL=2400,BLKSIZE=4524)
//IMFPARM DD DSN=IMF.BBPARM,DISP=SHR
//ERRORS DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//SYSUDUMP DD SYSOUT=A
//SYSIN DD *
IMSID=XXXX
RECON1=IMS.XX.RECON1
RECON2=IMS.XX.RECON2
TIME FROM=00:00:10 TO=01:00:00
DATE FROM=01/28/2022 TO=01/28/2022
JES2 job log example after specifying SYSIN DD
When you specify the SYSIN DD JCL statements in IMFLEDIT, you can see the following information in the JES2 job log (JESMSGLG):
J E S 2 J O B L O G -- S Y S T E M S J S D -- N O D E B B S Y S D
03.20.23 JOB13043 ---- THURSDAY, 01 JAN 2022 ----
03.20.23 JOB13043 IRR010I USERID ABCDEFG IS ASSIGNED TO THIS JOB.
03.20.23 JOB13043 ICH70001I ABCDEFG LAST ACCESS AT 03:18:39 ON THURSDAY, JULY 21, 2022
03.20.23 JOB13043 $HASP373 ABCDEFF STARTED - INIT 6 - CLASS F - SYS SJSD
03.20.23 JOB13043 IEF403I ABCDEFF - STARTED - TIME=03.20.23
03.20.23 JOB13043 SVW3482I ABCDEFF, DELETE, IRUFDS, ABCDEFG.V56.IRUF01 HANDLED BY MODDELET
03.20.23 JOB13043 -Jobname Stepname Procstep RC EXCP Conn TCB Time SRB Time CP Time
03.20.23 JOB13043 - ABCDEFF DELETE 0000 16 2 0.00 0.00 0.00 0.04
03.20.24 JOB13043 IMFLEDIT: SYSIN WILL BE USED AND LOGFILE WILL BE IGNORED.
03.20.24 JOB13043 IMFLEDIT: LIST OF 005 SLDS FILTERED:
03.20.24 JOB13043 IMFLEDIT: IMS.SLDSP.IABC.D22001.T0119525.V4A
03.20.24 JOB13043 IMFLEDIT: IMS.SLDSP.IABC.D22001.T0129525.V4B
03.20.24 JOB13043 IMFLEDIT: IMS.SLDSP.IABC.D22001.T0139525.V4C
03.20.24 JOB13043 IMFLEDIT: IMS.SLDSP.IABC.D22001.T0149525.V4D
03.20.24 JOB13043 IMFLEDIT: IMS.SLDSP.IABC.D22001.T0159525.V4E