Previous Topic: Example 2Next Topic: Example 4


Example 3

The ALLOCATE user exit in this example allows only drives equipped with automatic cartridge loaders (ACLs) to perform CA VM:Backup requests. You can use this user exit to load the ACL with scratch tapes and start a CA VM:Backup job during off-peak hours, knowing that CA VM:Backup will only select ACL-capable drives. Regular scratch mounts will go to non-ACL drives.

To implement this user exit, follow these steps:

  1. Add a RESERVE OFF record to the VMBACKUP CONFIG file.
  2. Run CA VM:Tape without Autopick and with scratch pools.
  3. Identify the CA VM:Backup user ID.
  4. Program the user exit as shown in the following code.

This ALLOCATE user exit dynamically determines ACL-capable drives and builds the eligible drive list using only those drives with an ACL (ACL_drive_list). For drives without an ACL, it builds a general drive list (GEN_drive_list). If the request is from CA VM:Backup, the user exit sets the eligible drive list accordingly.

ALLOCATE User Exit Example 3

/*-----------------Set up site-dependent variables ----------*/
/* Identify CA VM:Backup userid */

vmb_user = 'VMBACKUP'                                   
                                                      
/*----------------- Initialize Variables --- - ---------------*/

ACL_drive_list = ‘'
GEN_drive_list = ‘'
/*------------ Build an ACL drive list and also a -----------*/
/*------------------non-ACL drive list-----------------------*/

'EXTRACT /MOUNT/'
 if (MOUNT.1='RELEASE') then
exit 0           /* RC = 0, Skip VM:Tape drive ordering      */
'EXTRACT /DRIVE/USER/'
 if (MOUNT.1 = 'MOUNT') then
 do
   do i = 1 to DRIVE.0
     'EXTRACT /DEVICE' DRIVE.i '/'
      parse var DEVICE.7 stat .
      if stat = 'ACL' then
      do
        ACL_drive_list = ACL_drive_list || ' ' || DRIVE.i 'ACTIVE' 
        GEN_drive_list = GEN_drive_list || ' ' || DRIVE.i 'EXEMPT' 
      end
      else
      do
ACL_drive_list = ACL_drive_list || ' ' || DRIVE.i 'EXEMPT' 
        GEN_drive_list = GEN_drive_list || ' ' || DRIVE.i 'ACTIVE' 

      end
   end
/*------------ Determine whether to send mount to ACL ---------*/
/*------------ or to send it to non-ACL capable drives---------*/

   if (USER.3 = vmb_user) then
     'SET EDL' ACL_drive_list
   else
     'SET EDL' GEN_drive_list
 end
exit 0    /* RC = 0, Skip VM:Tape drive ordering */