Customer found that when a drive online to VM has been varied offline to be used on z/OS and then varied back online to VM again, VMTAPE doesn't always make the drive available.
We're showing the steps that were taken and how this didn't quite work the way the customer expected.
Here's what they did:
In this example, only 1 drive was available to VM, A0A0. VARY OFF command was entered for the raddr (A0A0) for the drive.
A MOUNT request was issued to VMTAPE. VMTAPE had only that one drive, A0A0 in its EDL (Eligible Drive List) .
VMTAPE allocated that one/only drive, it got the ASSIGNED ELSEWHERE failure, which caused the drive to be EXEMPTed in the EDL, and VMTAPE attempts to select another drive (that is not EXEMPT) from the EDL, but there are none that are ONLINE ... that causes the Pending message.
If there was another drive in the EDL "FREE" and not EXEMPT, VMTAPE would have selected it to try to complete the mount.
If another drive was made available, other than A0A0 which was EXEMPTed after the failure, VMTAPE would have picked it and completed the mount.
The only way VMTAPE could have been made to attempt to use A0A0 for this mount request would have been (after you "fixed" the drive) to issue a VMTAPE CHANGE vaddr userid DRIVELIST … to change A0A0 back from EXEMPT (for this mount) to NOTEXEMPT.
You could have used the VMTAPE QUERY DRIVELIST command to see this.
IMLSTA1 976 VMTINI600I Beginning: 'MOUNT SCRATCH ( RETPD 0' for IMLSTA1 using IMLSTA1 976 VMTMNU709I Volume VW4245 is now in saved status IMLSTA1 976 VMTAPK100I Volume VW4245 picked from pool LIBRARY. IMLSTA1 976 VMTMNT005I MOUNT '0181' request accepted. IMLSTA1 976 VMTEDL050I Eligible drives: 0781 0782 0783 0784 0785 0786 0787 0 IMLSTA1 976 VMTEDL050I 078D 078E 078F 0E00 0E01 0780 IMLSTA1 976 VMTEDL070I Location NONARM selected for IMLSTA1 0181 IMLSTA1 976 VMTEDL050I Eligible drives: 0781 0782 0783 0784 0785 0786 0787 0 IMLSTA1 976 VMTEDL050I 078D 078E 078F 0E00 0E01 0780 IMLSTA1 976 VMTEDL050I Eligible drives: 0781 0782 0783 0784 0785 0786 0787 0 IMLSTA1 976 VMTEDL050I 078D 078E 078F 0E00 0E01 0780 VMTAPE 000 VMTMIA000I Sending to MIMGR: ATTACH INT ("*EDL*") TO * AS FFFF ( ATTACHED TO VMTAPE FFFF VMTAPE 000 MIM2507 ATTACH 0781 TO VMTAPE AS FFFF DEFINED VMTAPE 000 VMTMIA999I MIMGR ended ATTACH command with RC=0 IMLSTA1 976 VMTMAN280A Mount selected LIBRARY SCRATCH volume VW4245 on '0781 IMLSTA1 976 VMTTIC499A Dev 0781 RELOAD CARTRIDGE. IMLSTA1 976 VMTTIC204E Manual unload error occurred on '781'; virtual addres IMLSTA1 976 VMTTIC136I Sense is 42408033 00000020 0F008E06 8E060000 000000E9 IMLSTA1 976 VMTTIC137I CSW is 0009E900 0C00000; CCW is 07000000 2000000. IMLSTA1 976 VMTDET191I DETACH 0781 FROM VMTAPE VMTAPE 000 VMTMIA000I Sending to MIMGR: ATTACH INT ("*EDL*") TO * AS FFFF ( DEFINED VMTAPE 000 VMTMIA999I MIMGR ended ATTACH command with RC=0 IMLSTA1 976 VMTMAN280A Mount selected LIBRARY SCRATCH volume VW4245 on '0782 HIDRO 990 VMTINI600I Beginning: 'QUERY DRIVELIST 181 IMLSTA1' for HIDRO us HIDRO 990 VMTINI601I Ending: 'QUERY', RC=0.
And here are the results of the QUERY DRIVELIST command after 0781 was rejected for the I/O error (and EXEMPTed).
In my case, the next drive was "FREE" and selected/used to complete the mount:
vmtape query drivelist 181 imlsta1 0781 3490E 36trk,38K/XF EXEMPT 0782 3490E 36trk,38K/XF MOUNTING IMLSTA1 0181 VW4245 RING IN Ready; T=0.01/0.01 14:56:43
Using the QUERY DRIVE LIST command and/or try to bring another drive online or use the VMTAPE CHANGE command to add the previously rejected tape drive back to NOEXEMPT status, you will see that everything is working.
For the above situation, here is the CHANGE command I entered:
Change 181 imlsta1 NOREORDR 0781 ACTIVE
This change cannot be done automatically, like a refresh of sort because VMTAPE does not know that the problem has been corrected with the drive. You have to tell it by using the VMTAPE CHANGE command to take the drive out of EXEMPT status for that mount request.