This article will show you how to initialize a multi-volume Datacom LXX on SMS and non-SMS controlled DASD. JCL examples are included in the article at this link.
Release: All releases
Occasionally, there is a need to catalog a Datacom Log File (LXX) across multiple SMS volumes. In these cases, you need to be aware of some distinct differences when accomplishing this task on SMS and non-SMS volumes.
This is an example of initializing an LXX across multiple volumes under SMS control.
Warning: This job will destroy the contents of the existing LXX . The user must insure that the current LXX contents have been offloaded to the RXX and that the Multi-User Facility is terminated normally before executing the following job.
STEP1 uses IEBDG utility to write records with a length of 32K to the LXX data set primary allocation. This step uses the IEBDG utility in order to create the data set allocation under SMS control. Note that the value of QUANTITY is set to 90000. This will force a secondary allocation to occur. This example filled every track on the primary and secondary allocation, but this is not a requirement. Optionally, you can run this job with QUANTITY set to a value high enough (50001) to force the use of at least one block on the second allocation. In the end, both quantities provide the same result. Once the SMS data set is created, STEP2 is used to re-initialize the SMS data set to the requested Datacom LXX format.
// JOB name ...... //STEP1 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=A //SEQOUT DD DISP=(,CATLG,DELETE),DSN=hlq.LXX, // SPACE=(TRK,(50000,40000)),VOL=(,,,2), // RECFM=U,LRECL=32760,BLKSIZE=32760 //SYSIN DD * DSD OUTPUT=(SEQOUT) FD NAME=FIELD1,LENGTH=32760,STARTLOC=1,FORMAT=AL,ACTION=TL CREATE QUANTITY=90000,NAME=(FIELD1) END //STEP2 EXEC PGM=DBUTLTY //DDSNAP DD SYSOUT=* //SNAPER DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DUMMY //SYSUDUMP DD SYSOUT=* //LXX DD DISP=SHR,DSN=hlq.LXX //SYSIN DD * INIT AREA=LXX,BLKSIZE=32760,BLOCKS=1,VARIABLE=YES REPORT AREA=LXX //
The following example shows how to initialize an LXX across multiple non-SMS controlled volumes.
Warning: This job will destroy the contents of the existing LXX . The user must insure that the current LXX contents have been offloaded to the RXX and that the Multi-User Facility is terminated normally before executing the job below.
STEP1 deletes the existing LXX data set. STEP2 allocates a new LXX across multiple volumes. STEP3 executes the DBUTLTY program to initialize the LXX data set.
// JOB name ...... ...... //STEP1 EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //FILE1 DD DSN=hlq.LXX, // DISP=(MOD,DELETE,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1)) //* //STEP2 EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //FILE1 DD DSN=hlq.LXX, // DISP=(NEW,CATLG),UNIT=3390, // DSNTYPE=LARGE, // VOL=SER=(volser1,volser2), // SPACE=(TRK,(100000,30000)) //************************************************************ //STEP3 EXEC GM=DBUTLTY //LXX DD DISP=SHR,DSN=hlq.LXX //SYSIN DD * INIT AREA=LXX,BLKSIZE=32760,BLOCKS=1,VARIABLE=YES REPORT AREA=LXX //