I'd say this means that the HCPSIG2113 message is not sent as a CP MSG (i.e.
sent often by someone else), what is by default the only thing WAKEUP
(IUCVMSG will intercept.

So, change the code to:
   'WAKEUP +0 (IUCVMSG QUIET'
   'CP SET CPCONIO IUCV'  /* Intercept all CP console IO too with IUCV*/
   ....
   do forever
      'WAKEUP (IUCVMSG QUIET'
      ....
   end
   'WAKEUP RESET'
   'CP SET CPCONIO OFF'  /* Stop intercepting all CP console IO */


That will work. Beware though that WAKEUP will thus intercept the response
of all CP commands till WAKEUP is reset.

2008/10/12 Martin, Terry R. (CMS/CTR) (CTR) <[EMAIL PROTECTED]>

>  Hi Kris,
>
>
>
> Thanks for the information.
>
>
>
> I still have a problem and that is, when the SHUTDOWN of the Linux guest
> occurs and I receive the message
>
> 'HCPSIG2113I User LNXSANDB has reported successful termination'. It just
> sits there my other instructions do not execute until I hit the ENTER key.
> When I hit the ENTER key I get a RC=6 and since I check for RC=6 and LEAVE I
> never get to the rest of my code. Apparently RC=5 is not happening.
>
>
>
> Any suggestions?
>
>
>
> Thanks Terry
>
>
>  ------------------------------
>
> *From:* The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] *On
> Behalf Of *Kris Buelens
> *Sent:* Saturday, October 11, 2008 4:18 PM
> *To:* IBMVM@LISTSERV.UARK.EDU
> *Subject:* Re: REXX with WAKEUP (IUCVMSG
>
>
>
> First of all: WAKEUP gives RC=6 when someone at the 3270 console  where
> this exec runs presses enter.
> The usual reaction of REXX execs using WAKEUP is then to exit, stop the
> REXX program.  Some REXX execs will first ask the user a confirmation if
> they want to exit, or if if was a mistake
>
> Secondly: when a message arrives via IUCV, WAKEUP will give return code 5
>
>  So the DO forever loop looks like:
>  Do forever
>   'WAKEUP (IUCVMSG QUIET'
>   Select
>    when rc=6 then leave
>    When rc=5 then do /* a MS arrived via IUCV */
>      parse pull theMsg ....
>        ...
>      end
>      Otherwise
>        Say 'Unexpcetd RC' rc 'from WAKEUP'
>        leave
>   end
> end /* Do Forever */
> 'WAKEUP RESET'
> exit
>
> Then; there is the difference between the program stack and the terminal
> input buffer.
>  - program stack is where e.g. WAKEUP or QUERY xxx (STACK store their data
>  - terminal input buffer is where CMS stores what you enter at the console
> PARSE PULL reads from the program stack, and if that is empty from the
> terminal input buffer, and if that is empty too, a VM READ is posted.
> PARSE EXTERNAL reads the terminal input buffer, and if that is empty, a VM
> READ is posted.
> Rexx function QUEUED() returns the number of lines in the program stack;
> EXTERNALS() the number of lines in the terminal input buffer.
>
> So; if you want to get the answer from an operator, it is better to use
> PARSE <UPPER> EXTERNAL than PARSE <UPPER> PULL.
>
> This is surely explained in more detail in our TCVM1 Telecourse
>   http://www.vm.ibm.com/download/packages/descript.cgi?TCVM1
>
>
> 2008/10/11 Martin, Terry R. (CMS/CTR) (CTR) <[EMAIL PROTECTED]>:
> > Hi
> >
> >
> >
> > I have been trying to figure out my problem but I cannot seem to find it
> so
> > I thought maybe someone more experience at this could help.
> >
> >
> >
> > Here is my current issue (I am sure there will be more to come but for
> now!)
> > when I do a SAY and try to PULL the ANSWER I keep getting what appears to
> be
> > left over messages not the expected data. The piece of code in RED is
> where
> > I am having the problem. Keep in mind that I am just testing certain
> things
> > out to get familiar with this so the code is my no means what I hope to
> end
> > up with.
> >
> >
> >
> > When I PULL the REPLY it is a message and therefore my check for the
> answer
> > never works. It is like something is left on the STACK. I am thinking it
> has
> > something to do with the 'WAKEUP +0 (IUCVMSG QUIET' .  I say this because
> > when I put the code in RED above this the REPLY area is what I expect not
> a
> > message.
> >
> >
> >
> > Do I need to clear something? Thanks for the help in advance.
> >
> >
> >
> >
> >
> > /*  LINUX SHUTDOWN EXEC */
> >
> >  /*
> >
> >  TRACE i
> >
> >  SAY 'TO STOP LINUX GUESTS ENTER'
> >
> >  SAY 'ALL'
> >
> >  SAY 'OR'
> >
> >  SAY 'LINUX GUEST ID'
> >
> >  PULL GUEST
> >
> >
> >
> >  IF GUEST /= 'ALL' THEN
> >
> >    DO
> >
> >     SAY 'SHUTING DOWN' GUEST 'GUEST CHOOSE:
> >
> >     SAY 'REIPL'
> >
> >     SAY ' OR'
> >
> >     SAY 'SHUTDOWN'
> >
> >
> >
> >     PULL FUNCTION
> >
> >
> >
> >     'WAKEUP +0 (IUCVMSG QUIET'
> >
> >
> >
> >   /*'CP SIG SHUTDOWN' GUEST 'WITHIN 180'    WAIT 3 MINUTE THEN FORCE */
> >
> >
> >
> >     end
> >
> >   /*  IF RC=45 THEN*/
> >
> >   /*EXIT */
> >
> >   SAY '... WAITING FOR SHUTDOWN COMPLETION'
> >
> >
> >
> > DO FOREVER;               /* WILL GET MESSAGES UNTIL GUEST DOWN */
> >
> > 'WAKEUP (IUCVMSG QUIET'            /*   MESSAGE HAS ARRIVED */
> >
> >
> >
> > IF RC = 6 THEN
> >
> >   DO
> >
> >   IF FUNCTION = 'SHUTDOWN' THEN
> >
> >    DO
> >
> >     SAY GUEST 'VM USER LOGGING OFF'
> >
> >     'CP SEND CP' GUEST 'LOGOFF'
> >
> >   END
> >
> >         DO
> >
> >        'PIPE CP Q NAMES | LOCATE /'GUEST'/ | SPLIT | LOCATE /'GUEST'/',
> >
> >           '| > LINUX USERS A'
> >
> >
> >
> >
> >
> >             USERID = 'LINUX USERS A'
> >
> >        PARSE VALUE STREAM(USERID,'C','OPEN READ') WITH OK FILE_HANDL
> >
> >    end
> >
> >
> >
> >       IF OK /= 'READY:' THEN
> >
> >   DO
> >
> >     SAY 'LINUX USER HAS BEEN LOGGED OFF'
> >
> >     end
> >
> >    DO
> >
> >      SAY 'DO YOU WANT TO LOG' GUEST 'BACK ON'
> >
> >      SAY 'YES'
> >
> >      SAY ' OR'
> >
> >      SAY 'NO'
> >
> >        PULL REPLY
> >
> >       IF REPLY /= 'YES' THEN
> >
> >        EXIT
> >
> >        END
> >
> >     DO
> >
> >      'PIPE CP XAUTOLOG' GUEST
> >
> >
> >
> >       'PIPE CP XAUTOLOG' GUEST
> >
> >       SAY GUEST 'HAS BEEN LOGGED ON'
> >
> >
> >
> >      IF FUNCTION = 'REIPL' THEN
> >
> >       DO
>
> >
> >        SAY GUEST 'VM USER REIPL STARTED'
> >
> >        'CP SEND CP' GUEST 'IPL 700 CLEAR'
> >
> >        END
> >
> >      'CP I CMS'
> >
> >       EXIT
> >
> >     END
> >
> >     END
>
> >
> >  END  /* END OF DO FOREVER LOOP */
> >
> >
> >
> >  /* =================== END OF INDIVIDUAL GUEST SHUTDOWN ============ */
> >
> >
> >
> >      EXIT          /* RETURN TO CMS */
> >
>
> >
> >
> >
>
>
>
> --
> Kris Buelens,
> IBM Belgium, VM customer support
>



-- 
Kris Buelens,
IBM Belgium, VM customer support

Reply via email to