It's been quite a while (perhaps 2004?) since we used RMSMASTR, and I did a bunch of local stuff before it began, but the methods to correlate with VM:Tape that I used was to change the PROFILE EXEC to call our "HASERVE EXEC" before it looped calling the RMSSERV EXEC.
Here's the pertinent part from the HASERVE EXEC (pasted intact with all it's gory learn-as-we-went commented-out stuff): /*---------------------------------------------------------------*/ /* Build a SESSION GLOBALV value with all RMSMASTR-controlled */ /* tape drives for use by "QFRMSEXT EXEC", as well as error */ /* recovery in case a VTS is not ready yet and needs retries. */ /*---------------------------------------------------------------*/ 'PIPE (END ? NAME GetRdevs)' , '| < RMCONFIG DATA L' , '| STRIP LEADING' , '| SPLIT BEFORE *' , /* Split comment to next line*/ '| STRNFIND \*\' , /* Blitz comments */ '| LOCATE WORD 1' , /* Blitz blank lines */ '| SPACE 0' , /* Remove spaces */ '| STEM rdevs.' /* Resultant rdev-rdev(s) */ /* Handle either case: rdev rdev ... * Some comments */ /* or: rdev-rdev ... *other comments */ /* but not: rdev rdev-rdev * Not both ranges + single */ sdevs='' /* sdevs = Serial rdev addrs */ Signal OFF NoValue Do rx=1 to rdevs.0 If pos('-',rdevs.rx)=0 then Do sdevs=sdevs rdevs.rx Iterate End /* Must have an "rdev-rdev" range */ Do until rest='' parse var rdevs.rx rbeg'-'rend rest rest=strip(rest,'B') parse var rest c1 2 . If c1='*' then rest='' /* Ignore comments */ rnext=x2d(rbeg) rstop=x2d(rend) Do until rnext>rstop sdevs=sdevs d2x(rnext) rnext=rnext+1 End End /* While */ End rx Signal ON NoValue rmsdrives=sdevs drop sdevs 'GLOBALV SELECT HASERV PUTS RMSDRIVES' /* Set SESSION GLOBALV */ ?msgop=0 /* CP MSG OP of critical problems */ ?hamimgr=0 /* Perform H.A. version of MI init*/ If 1=2 then /* No longer used, this was an early attempt */ Do 'VMTAPE RMS QUERY' /* Status? */ 'VMTAPE SUSPEND' /*Don't let VMT alloc before RMS is fully up*/ End errcnt=0 /* Init as OK */ sleeptime='1 MIN' retries=60 /* Do rx=1 to retries until errcnt<>2 */ Do rx=1 to retries until src=0 say '' If rx=1 then Call Notify 'DFSMS initialization begins.' else Call Notify 'DFSMS initialization attempt:' rx say '' /* A Pipe traps all messages until RMSSERV, and it's module */ /* "FSMDFSMS" complete, which prevents us from knowing what */ /* is going on when it runs normally. */ /*'PIPE (END ? NAME RMSSERV)' , * '| COMMAND EXEC RMSSERV' , * '| CONSOLE' , * '| nBBC: LOCATE WORD 1 /FSMBBC0505E/' , * '| LOCATE / 2523, /' , * '| PICK WORD -1;* == /3/' , /* rc=3 */ * '| fany: FANINANY' , * '| COUNT LINES' , * '| VAR errcnt' , * '? nBBC:' , * '| LOCATE WORD 1 /FSMXXX0505E/' , * '| LOCATE / 2522, /' , * '| PICK WORD -1;* == /3/' , /* rc=3 */ * '| FANY:' */ 'EXEC RMSSERV' src=rc 'SET IMPEX ON' /* RMSSERV sets it off */ If src=0 then Leave /* No specific rc for not-ready VTS */ Call ResetRdevs If rx>1 then /* It's not the first try */ Do Call Notify 'Sleeping' sleeptime 'before retry' , rx+1 'of' retries'.' 'CP SLEEP' sleeptime 'ATTN' If rc=1457 then /* Someone pressed ENTER */ Do say time() 'Aborting after' rx 'attempts due to' , 'ENTER key interrupt.' Call Exit rc End End End say '' Call Notify 'DFSMS has ended, rc='src , '('rx 'initialization attempts)' say '' Call Notify 'DFSMS has ended, rc='src , '('rx 'initialization attempts)' If cons('D') then /* Local exec returning 1 if Disconnected */ 'CP LOGOFF' 'ACCESS 191 A' Call Exit src /********************************************************************/ /* Sub-Routines below this point */ /********************************************************************/ Exit: parse arg exitrc . If verify(exitrc,'-0123456789')=0 then Exit exitrc else Exit 999999 Notify: parse arg msgtxt 'CP MSG *' msgtxt If ?msgop then 'CP MSG OP' msgtxt Return ResetRdevs: /*****************************************************************/ /* It is possible that we took a power hit, and VM came back up */ /* before the ATL(s) initialized, leaving the devices not */ /* properly replying to read-device-characteristics CCW. */ /* Drop them from CP and re-add them to get a fresh look. */ /*****************************************************************/ Call Notify 'It appears that one or more IBM VTLs are' , 'not yet ready, the VTL(s) may still be initializing.' Call Notify 'Retry attempt' rx 'of' retries Do ix=1 to rdevs.0 rdevs=rdevs.ix 'CP VARY OFF' rdevs 'CP VARY OFF SUBCH' rdevs 'CP DELETE RDEVICE' rdevs 'CP SET RDEVICE' rdevs 'TYPE TAPE' 'CP VARY ON SUBCH' rdevs 'CP VARY ON' rdevs End Return I hope that provides some ideas for those in need. Mike Walter Hewitt Associates The opinions expressed herein are mine alone, not my employer's. "Christy Brogan" <ccbro...@us.ibm.com> Sent by: "The IBM z/VM Operating System" <IBMVM@LISTSERV.UARK.EDU> 07/28/2010 03:33 PM Please respond to "The IBM z/VM Operating System" <IBMVM@LISTSERV.UARK.EDU> To IBMVM@LISTSERV.UARK.EDU cc Subject Re: RMSMASTR : ready or not Like Richard, we run VM:Tape. Here, it is NOT happy if it tries to start when RMSMASTR isn't ready. (Maybe we can chat Richard!) Basically what we do is to have a sleep in autolog2 to start up RMSMASTR, wait a few minutes and then do VMTAPE. It's not precise, but it works for us. :-) "Schuh, Richard" ---07/28/2010 01:24:33 PM---You could always loop while trying to mount a tape. When it is mounted, RMSMASTR is ready.:-) In rea From: "Schuh, Richard" <rsc...@visa.com> To: IBMVM@LISTSERV.UARK.EDU Date: 07/28/2010 01:24 PM Subject: Re: RMSMASTR : ready or not Sent by: The IBM z/VM Operating System <IBMVM@LISTSERV.UARK.EDU> You could always loop while trying to mount a tape. When it is mounted, RMSMASTR is ready.:-) In reality, the tape manager should be able to wait to open the interface until RMSMASTR is ready. Here, we have both a VTS, controlled by RMSMASTR, and 2 SL3000s, controlled by STKACS, and some tapes that are outside the silos. VMTAPE manages to initialize before RMSMASTR is ready and is quite happy adding the VTS to its stable when it is ready. If you really need to insure that RMSMASTR is running, you need an Observer or a Secuser of it that looks for the message FSMSMS3203I RMSMASTR is running. Regards, Richard Schuh > -----Original Message----- > From: The IBM z/VM Operating System > [mailto:ib...@listserv.uark.edu] On Behalf Of Alain Benveniste > Sent: Wednesday, July 28, 2010 11:40 AM > To: IBMVM@LISTSERV.UARK.EDU > Subject: RMSMASTR : ready or not > > Looking back to my autolog2 profile, I found not much pretty > to xautolog rmsmastr and sleep 30 sec to xautolog products > they require tape mounts. > Rather than that I thought to trap a message that says in > substance "rmsmastr is ready, the tapes drives are there...". > Or "rmsmastr did not found a drive to initialize library ABC123...". > > What could I test to be sure of its good initialization ? > > > Alain > > The information contained in this e-mail and any accompanying documents may contain information that is confidential or otherwise protected from disclosure. If you are not the intended recipient of this message, or if this message has been addressed to you in error, please immediately alert the sender by reply e-mail and then delete this message, including any attachments. Any dissemination, distribution or other use of the contents of this message by anyone other than the intended recipient is strictly prohibited. All messages sent to and from this e-mail address may be monitored as permitted by applicable law and regulations to ensure compliance with our internal policies and to protect our business. E-mails are not secure and cannot be guaranteed to be error free as they can be intercepted, amended, lost or destroyed, or contain viruses. You are deemed to have accepted these risks if you communicate with us by e-mail.