Not the way I'd do it, but building on your original exec, try this;
/* */
Address Command
Arg vcmd
If vcmd='' then vcmd='D NET,APPLS'
onq = Queued()
'Q SECUSER VTAM (LIFO' /* cms will route to cp, stack response */
Parse pull . oldsecu .
Do while Queued()>onq; Parse pull; End
If oldsecu='not' then oldsecu = 'RESET'
'CP SET SECUSER VTAM *'
'CP SET CPCONIO IUCV'
'CP SEND VTAM VTAM' vcmd
DO FOREVER
'WAKEUP +00:05 (QUIET IUCVMSG' /* set timeout value */
IF RC = 5 THEN DO while Queued()>onq
PARSE PULL MSG
Say ">->" msg
'EXECIO 1 DISKW VTAM RESULT A (VAR MSG'
END
ELSE Leave
END
'CP SET CPCONIO OFF'
'CP SET SECUSER VTAM' oldsecu
Do while Queued()>onq; Parse pull cruft; Say cruft; End
Exit
--
Mike Harding
z/VM System Support
[email protected]
[email protected]
[email protected]
(925) 926-3179 (w)
(925) 323-2070 (c)
IM: VMBearDad (AIM), mbhcpcvt (Y!)
The IBM z/VM Operating System <[email protected]> wrote on 04/22/2010
10:59:45 AM:
> From: "Hughes, Jim" <[email protected]>
> To: [email protected]
> Date: 04/22/2010 11:00 AM
> Subject: Re: Question About Read console output under REXX
> Sent by: The IBM z/VM Operating System <[email protected]>
>
> There isn’t anything saying one message per interrupt. The interrupt
> handler keeps pushing them onto the program stack whether you are
> there to retrieve them or not.
>
> Stay in your loop until you decide it is time to exit. The timer
> suggestion is a good one. If VTAM sends a message indicating “end of
> command”, I’d use it as my exit condition too.
>
> Good Luck.
> ____________________
> Jim Hughes
> 603-271-5586
> "It is fun to do the impossible."
>
> From: The IBM z/VM Operating System [mailto:[email protected]]
> On Behalf Of Sergio Lima
> Sent: Thursday, April 22, 2010 1:55 PM
> To: [email protected]
> Subject: Re: Question About Read console output under REXX
>
> Hello Jim,
>
> Thanks from your help.
> But, Jim, it's well, if I have all records with only one time correct ?
>
> Regards,
>
> Sergio
>
> Date: Thu, 22 Apr 2010 12:38:30 -0400
> From: [email protected]
> Subject: Re: Question About Read console output under REXX
> To: [email protected]
> Queue puts data at the end of the program stack.
>
> Push puts data at the beginning of the program stack. I think you
> have used PUSH instead of queue.
>
> Also, do this to retrieve your responses:
>
> $q = queued()
> “EXECIO” $q “diskw vtam result a”
>
>
> I’ve not tested this either.
>
> ____________________
> Jim Hughes
> 603-271-5586
> "It is fun to do the impossible."
>
> From: The IBM z/VM Operating System [mailto:[email protected]]
> On Behalf Of Sergio Lima
> Sent: Thursday, April 22, 2010 12:26 PM
> To: [email protected]
> Subject: Re: Question About Read console output under REXX
>
> Hello Mr. Scott,
>
> We already test this sample here, but still don't run well,
>
> We write this :
>
> /* */
> TRACE R
> 'CP SET SECUSER VTAM *'
> 'CP SET CPCONIO IUCV'
> 'CP SEND VTAM VTAM D NET,APPLS'
> DO FOREVER
> 'WAKEUP (IUCVMSG'
> IF RC = 5 THEN DO
> PARSE PULL MSG
> PARSE VAR MSG
> queue msg
> 'EXECIO 1 DISKW' VTAM RESULT A
> END
> ELSE EXIT
> END
>
> But, the response of my command don't return.
> I wait few seconds, and my file was wrote with this data :
>
> VTAM RESULT A1 V 87 Trunc=87 Size=4 Line=0 Col=1 Alt=0
> ===>
> |...+....1....+....2....+....3....+....4....+....5....+....
> 6....+....7..
> 0000 * * * Top of File * * *
> 0001 *SCIF VTAM VTAM : IST663I IPS SRQ REQUEST FROM
> ISTAPNCP FAILED,
> 0002 *SCIF VTAM VTAM : IST664I REAL OLU=CEF.CICHABE ALIAS
D
> 0003 *SCIF VTAM VTAM : IST889I SID = D5CBC1D3CE560499
> 0004 *SCIF VTAM VTAM : IST314I END
>
> Another words, this data is the result of another thing.
>
> Do you seee some mistake here ?
>
> I understand, that the WAKEUP (IUCVMSG receive the RC = 5 all times
> that my virtual machine receive one messagem from VTAM machine correct?
>
> If this is ok, why the result of my DISPLAY don't run ?
>
> Thanks again.
>
> Sergio
>
>
>
>
>
>
> Date: Thu, 22 Apr 2010 09:23:20 -0600
> From: [email protected]
> Subject: Re: Question About Read console output under REXX
> To: [email protected]
>
> Sergio -- The problem here is that you ARE getting the output of
> your command -- but what you want to capture is the asynchronous
> response to that command. In other words -- the CP SEND worked
> fine, and the command ended -- but what you wanted to capture was
> the response from VTAM that followed after the CP SEND command ended.
>
> The common way to do this is using WAKEUP (IUCVMSG -- setting
> CPCONIO to IUCV, and looping to capture the response.. something like
this:
>
> 'CP SET SECUSER VTAM *'
> 'CP SET CPCONIO IUCV'
> 'CP SEND VTAM VTAM D NET.APPLS'
> Do Forever
> 'WAKEUP (IUCVMSG'
> If rc = 5 Then Do
> Parse pull msg
> Parse var msg ........
> /* Do something with output - make sure it's from VTAM, etc */
> End
> Else Exit
> End
>
>
> Just a very rough sample - but hopefully enough to get you started.
> You can also use PIPE and STARMSG, but I'm less familiar with using
> that method.
>
> Hopefully this is enough to get you started!
>
> Scott Rohling
> On Thu, Apr 22, 2010 at 9:01 AM, Sergio Lima <[email protected]>
wrote:
> Hello Mr. Scott,
>
> First, thanks very much from your help, and other colleagues of this
> list, and sorry from delay this response.
> I tested your sample here, and this is wath we need.
> For CMS commands, ok, for CP commands, also ok, but,
> We need something like this :
>
> /* */
> TRACE R
> "CP SET SECUSER VTAM * "
> 'PIPE CP SEND VTAM VTAM D NET,APPLS | STEM OUTPUT.'
> SAY OUTPUT.0
> DO I = 1 TO OUTPUT.0
> SAY SUBSTR(OUTPUT.I,1,8)
> QUEUE OUTPUT.I
> 'EXECIO 1 DISKW' VTAM RESULT A
> END
> "CP SET SECUSER VTAM OPERATOR "
>
> Because, need monitoring the I/O buffers of VTAM, and others.
>
> When execute the exec above, the OUTPUT of the command is not wrote
> in my CMS file.
>
> Can you help please ?
>
> Thanks very much,
>
>
> Sérgio Lima Costa
> [email protected]
> Arquitetura e Suporte
> GRV Solutions
> Tel.: +55 (11) 4152-9398
> www.grvsolutions.com.br
>
>
>
>
> Date: Fri, 12 Mar 2010 08:54:05 -0700
> From: [email protected]
>
> Subject: Re: Question About Read console output under REXX
> To: [email protected]
> 'PIPE CMS command | STEM OUTPUT.'
> 'PIPE CP command | STEM OUTPUT.'
>
> Do i = 1 to output.0
> Say output.i
> End
>
> for starters
>
> Scott
> On Fri, Mar 12, 2010 at 8:43 AM, Sergio Lima <[email protected]>
wrote:
> Hello List,
>
> Years ago, We had a REXX program that gove a CMS (query names), or a
> CP command (CP q rdr all) , and next read the output of
> this command in my program, for example : If we need look the spool
> files, my program process this, and look how many files had,
> or list the users logged in alphabetic order.
> Unfortunatelly We lost this samples programs, so, someone have
> anything like this ?
>
> Thanks very much.
>
> Sergio Lima Costa
> System Programmer
> GRV Solutions
> Sao Paulo - Brazil
>
> Transforme-se em personagens engraçados. Conheça o novo site de I
> Love Messenger.
>
>
> Veja todos os seus e-mails de diferentes contas com apenas um login.
> Veja como.
>
>
> Quer transformar suas fotos em emoticons para o Messenger? Clique
> aqui e veja como.
>
>
> Quer transformar suas fotos em emoticons para o Messenger? Clique
> aqui e veja como.