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