How do I move my old ASM2 tapes to a new device type?

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

Problem:

I have a need to move all my physical CA ASM2 archive tapes to virtual tape devices or other device types such as a cartridge.

Resolution:

The basic process is to use the Forward Merge ($FM) process and simply change the UNIT= value to the new esoteric. If the old unit was UNIT=CART and the new device is a virtual tape you would change the output to UNIT=VTAPE. However, you will also need to update the $OPTIONS $TPUNIT values.

 

Converting CA-ASM2 Tape Media to New Tape Media a    Cookbook Approach

As tape media continues to increase in capacity and performance value the older media
begins to be used less until the devices that support them are phased out of the environment.
For products like CA-ASM2 this poses an interesting question: How do I keep my archived files,
which we must keep for many years but, yet dispose of the older media? This article addresses this
question in a short and concise manner. When converting the current tape media to a new or more advanced
tape media technology, the following cookbook may be of some value to aid in the facilitation of this process.

This cookbook assumes previous knowledge of the utilities being used for this process and a basic
knowledge of CA-ASM2 and its utilities.
 
The process will utilize the following CA-ASM2 utilities and functions:

1) The Forward Merge Utility or $FM process
2) The IPC maintenance utility named $MAINT.
 
These are documented in the Brightstor CA-ASM2 System Reference Guide.
 


Preparation for the Forward Merge Process: 

During the $FM process make sure that IXR and RXQUMON, the two reload started tasks,
are not executing. These tasks will enqueue on the IPC and JNL files while they are being used for
the $FM process. This will affect performance of the $FM process but also the reload process will
be slowed down. The second concern during the reload process will be the attempt to reload a file
from a tape that is being processed at the time. Both of these situations should be avoided.
 
Before you begin the $FM process you will want to backup the IPC either with CA ASM2 utilities such as
M2PCBRU, the IPC Backup Utility, or using IDCAMS REPRO. Either choice will make a recoverable copy
and allow a quick return to the normal production environment should something cause the $FM process not to be completed.
 
During the days or weeks of $FM processing, probably off hours, you will want to be sure you are running
the backup and archive jobs with the $NEWTAPE parameter. This will allow you to Forward Merge the tapes
created the previous day without fear of stacking issues during the normal archive and backup runs. Once
the final $FM process has been completed you can stop using $NEWTAPE.
It is recommended that instead of waiting until the $FM process is completed, that you alter the backup and
archive jobs to reflect the new tape media esoteric that you have decided to use. This will limit the number
of new tapes being created in the old media type and reduce the number of old media tapes to be processed.
You should change the backup and archive jobs to reflect the new tape media and then use $NEWTAPE for the
first execution of all the jobs. This will force the new tape media to be used and clear the LOxxx files
used to maintain tape records of the media utilized at the time of the backup and archive executions.

The next process change is in the $OPTIONS $TPUNIT fields. There are several values to be aware of.
However, the one important rule is “NO DUPLICATION”. You cannot have the same esoteric pointing to different
device types. CA-ASM2 will not decide whether the esoteric is correct. It will simply issue the mount request
with the information provided. Here is a sample of how to setup your $OPTIONS $TPUNIT value:
 

$TPUNIT   EQU   *                                      
$TP3420   DC    CL8'RTAP    '     UNIT NAME FOR 3420 ALLOCATIONS 
$TP3480   DC    CL8'CART    '     UNIT NAME FOR 3480 ALLOCATIONS 
$TPM860   DC    CL8'M860    '     UNIT NAME FOR M860 ALLOCATIONS 
$TP348X   DC    CL8'3480    '     UNIT NAME FOR 3480 XF DRIVES   
$TP349E   DC    CL8'3490    '     UNIT NAME FOR 3490 E ALLOCATIONS
$TP359E   DC    CL8'3590-1  '     UNIT NAME FOR VTAPE ALLOCATIONS 
          DC    CL8'        '     UNIT NAME TABLE EXPANSION      

Note that each device type on the right has an esoteric to match. None of the esoterics are duplicates.
This allows the correct device type to always have a match with a media type that will be asked for during reload processing.
 
To re-assemble $OPTIONS you can use the L142IH job found in SAMPJCL.


The Forward Merge Process:

The first step is to determine the amount of tapes and which tapes are to be converted to the new media type.
The $MAINT report will provide you a complete tape report that includes the tape utilization of each tape.
$MAINT also provides a Forward Merge candidate list. The candidates are selected based on the control statements
for THRESHOLD management that are used in the $MAINT input control statements.
 
Once you have the list of tapes that you wish to Forward Merge to the new media, you place them in the
$FM input control statements. These tapes will be called in the order they are read into the process.
In the $FM proc that is provided in the CAIPROC(ASM2FMRG) dataset you should place the esoteric of the new device
type in the    OUTUNIT=   parm in the proc. This will assure that the output device type is what you specify.
It is suggested that you do not process more than 99 tapes at a time due to the amount of IPC scanning that is occurring.
 
                                                      
The first step reads in the input control statements (Tape Volsers) and scans the IPC for the status of each
file on the tape. The decision is made to pass the file to the new MASTER or purge the file from the IPC.
This will be the same process for each file on every tape processed. 

The next step of the job is the ASM2CPYT step. This will create a new DUPLEX tape of the new MASTER that
was created during the $FM process. This step is only required if you are Forward Merging ARCHIVE tapes.
If you choose, not recommended, to $FM BACKUP tapes, you can remove the step if you do not DUPLEX BACKUP tapes.

The last step of the proc is the ASM2IPCU step. This step updates the ASM2 IPC database. This is a
critical step and must complete normally as with the other steps. Once this step completes, the old MASTER tapes can be scratched.

 
To scratch the tapes you must use whatever tape package you are using in your environment to build
scratch control statements for the scratch process. Once the old MASTER tapes are scratched you can
move on to scratching the old DUPLEX tapes.
 
 
                         Sample Proc

//ASM2FMRG PROC CTLVOL=ASMVOL,                              
//         CTLDEV=ASMUNIT,                                  
//         WHAT=ARCH,IDX='CAI.ASM2.NONVSAM',                
//         POOL=$TAPPOOL,RIDX='CAI.ASM2.R42',                                   
//         INUNIT=TAPE,OUTUNIT=VTAPE                                                     -? tape esoterics                
//******************************************************    
//*         CA-ASM2 RELEASE 4.2 FORWARD MERGE                *   
//******************************************************    
//ASM2FMRG EXEC PGM=$FM,REGION=4096K                        
//ASMPRINT DD  SYSOUT=(*)                                   
//SYSPRINT DD  SYSOUT=(*)                                   
//SYSUDUMP DD  SYSOUT=(*)                                   
//ABNLDUMP DD  DUMMY                                        
//INTAPE   DD  UNIT=(&INUNIT,,DEFER),DISP=OLD,VOL=SER=ASM2XX ?           
//OUTAPE   DD  UNIT=(&OUTUNIT,,DEFER),DISP=(NEW,KEEP),                       ?  
//             VOL=SER=XXXXXX,                              
//             DSN=&IDX..&WHAT..DUMMY                       
//FMWORK   DD  DSN=&IDX..&WHAT..FMWORK,DISP=(,CATLG,CATLG),
//             SPACE=(CYL,(1,1)),UNIT=&CTLDEV,            
//             VOL=SER=&CTLVOL,                           
//             DCB=BLKSIZE=6800                           
//SYSUT1   DD  SPACE=(CYL,(1,1)),UNIT=SYSDA,              
//             DCB=BLKSIZE=6800                           
//TAPEPOOL DD  DSN=&IDX..&WHAT..&POOL,DISP=SHR            
//ISPMLIB  DD  DISP=SHR,DSN=CAI.CAIISPM                   
//PARMS    DD  DSN=&RIDX..L142.PARMLIB(ARCPARMS),DISP=SHR 
//ASMWORK  DD  UNIT=SYSDA,SPACE=(80,(10,10))              
//*                                                                                                        * 
//ASM2CPYT EXEC PGM=$COPYTP,REGION=4096K,                 
//         COND=(16,EQ,ASM2FMRG)                          
//******************************************************  
//*         FORWARD MERGE DUPLEX STEP                                      * 
//******************************************************  
//ARCLOG   DD  DSN=&IDX..&WHAT..ARCLOG,DISP=(SHR,KEEP)    
//PRINT    DD  SYSOUT=(*),                                
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=80)         
//ERRPRINT DD  SYSOUT=(*),                                
//             DCB=(RECFM=FA,BLKSIZE=133)                 
//SYSPRINT DD  SYSOUT=(*),                                
//             DCB=(RECFM=FA,BLKSIZE=133)                 
//SYSUDUMP DD  SYSOUT=(*)                                 
//ABNLDUMP DD  DUMMY                                      
//INTAPE   DD  DSN=INTAPE,                                
//             DISP=SHR,                                  
//             VOL=SER=ASM2XX,                            
//             LABEL=(1,SL),UNIT=(&INUNIT,,DEFER)         
//OUTAPE   DD  DISP=(NEW,KEEP),                           
//             UNIT=(&OUTUNIT,,DEFER),                    
//             LABEL=(1,SL)                               
//TAPEPOOL DD  DSN=&IDX..ARCH.$DUPPOOL,DISP=SHR           
//TAPELOG  DD  DSN=&IDX..&WHAT..TAPELOG,DISP=OLD          
//ISPMLIB  DD  DISP=SHR,DSN=CAI.CAIISPM                   
//*                                                                                                        *    
//ASM2IPCU EXEC PGM=$FMIPCU,                                 
//           COND=((16,EQ,ASM2CPYT),(16,EQ,ASM2FMRG))        
//******************************************************     
//*         FORWARD MERGE IPC UPDATE                                        *    
//******************************************************     
//ASMPRINT DD  SYSOUT=(*)                                    
//SYSPRINT DD  SYSOUT=(*)                                    
//SYSUDUMP DD  SYSOUT=(*)                                    
//ABNLDUMP DD  DUMMY                                         
//TAPEPOOL DD  DSN=&IDX..&WHAT..&POOL,DISP=SHR               
//TAPELOG  DD  DSN=&IDX..&WHAT..TAPELOG,DISP=(OLD,DELETE,KEEP)
//FMWORK   DD  DSN=&IDX..&WHAT..FMWORK,DISP=(OLD,DELETE,KEEP)
//ISPMLIB  DD  DISP=SHR,DSN=CAI.CAIISPM