The IDMS system log file (SYSTEM.DDLDCLOG) must be periodically archived. It is critical that this happens swiftly and successfully. If the job which performs this task fails or is delayed for any reason, it can lead to the log filling and the CV hanging and being unresponsive.
This article describes the recommended method for setting up this process.
Release : All supported releases.
Create a job to archive the log. It should look something like this, configured to your site standards for a normal IDMSBCF job step.
//STEPLIB DD DISP=SHR,DSN=<idms.dba.loadlib> // DD DISP=SHR,DSN=<idms.custom.loadlib>// DD DISP=SHR,DSN=<idms.cagjload>//DCLOG DD DISP=SHR,DSN=<idms.cvnn.system.ddldclog> //SYSLST DD SYSOUT=*//SYS001 DD DUMMY//SYS002 DD DSN=<idms.archive.log.gdg>(+1),// DISP=(,CATLG,DELETE),// SPACE=(CYL,(10,10)),// DCB=(RECFM=VB,LRECL=280,BLKSIZE=2804)//SYSIDMS DD *ECHO=ONDMCL=<idmsdmcl>//SYSIPT DD *UNLOCK SYSTEM.DDLDCLOG;PRINT LOG FROM DATABASE;ARCHIVE LOG;
Put this JCL in a member in a PDS, ideally named PLOGJOB in the same PDS in which the CV startup job resides. The dataset and member name of this job must be pointed to by the PLOGJOB member of the CV startup job.
//PLOGJOB DD DISP=SHR,DSN=<idms.cv.jcl(PLOGJOB)>,DISP=SHR
To ensure the timely and necessary submission of this job, use the default WTOEXIT source provided at installation in the *.CAGJSRC(WTOEXIT) member.
This WTOEXIT ensures that the job is submitted at the following times:
Some sites have a requirement to implement extra processing against the newly created archive log file. If that is necessary, it is advised that a separate job be submitted by the archive log job to perform that processing and not do it directly in the job. The reason for this is to not unnecessarily complicate or delay the archive log job.
Note: Be sure to include the PRINT statement in the above SYSIPT just prior to the ARCHIVE statement. Failure to do this will mean that the ARCHIVE process will still work, but the log content that was just archived will not be visible in the output of the job. The only way to then see what was archived is to run another PRINT LOG job independently of the regular ARCHIVE LOG jobs, but instead use the PRINT LOG FROM ARCHIVE syntax, and point the SYS001 ddname to the archive file containing the content that is to be viewed. This makes problem analysis much more difficult. It is easier to have the content PRINTed as it is ARCHIVEd.