How do I initialize the CA Datacom Log File (LXX) across multiple volumes - including volumes controlled by SMS?

Document ID : KB000055125
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

This article will show you how to initialize a multi-volume LXX on SMS and non-SMS controlled DASD. JCL examples are included in the article at this link.

Solution:

Occasionally, there is a need to catalog a CA 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 CA Datacom LXX format.

// JOB name
......
//STEP1    EXEC PGM=IEBDG                                       
//SYSPRINT DD SYSOUT=A                                          
//SEQOUT   DD DISP=(,CATLG,DELETE),DSN=DBSYS.SYS.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=DBSYS.SYS.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=DBSYS.SYS.LXX,               
//         DISP=(MOD,DELETE,DELETE),UNIT=SYSDA,  
//         SPACE=(TRK,(1))   
//*                    
//STEP2    EXEC PGM=IEFBR14                       
//SYSPRINT DD SYSOUT=*                           
//FILE1    DD DSN=DBSYS.SYS.LXX,               
//         DISP=(NEW,CATLG),UNIT=3390,           
//         DSNTYPE=LARGE,                        
//         VOL=SER=(DCMQAO,DCMQAM),              
//         SPACE=(TRK,(100000,30000))   
//************************************************************    
//STEP3    EXEC GM=DBUTLTY                                            
//LXX      DD  DISP=SHR,DSN=DBSYS.SYS.LXX
//SYSIN    DD *                                                    
  INIT     AREA=LXX,BLKSIZE=32760,BLOCKS=1,VARIABLE=YES         
  REPORT   AREA=LXX                                                          
//