This works for me;

level='00000004'x
name=left(serverName,16)
token='00000000000000000000000000000000'x
retcode='00000000'x
do until retcode = '00000004'x
  "sleep 2"
  address LINKPGM "IEANTRT  LEVEL NAME  TOKEN RETCODE"
end

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of ITschak Mugzach
Sent: Tuesday, March 21, 2023 5:36 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Is z/OS Name/Token pair retrieval supported from REXX?

It dump the pairs, but you can always use IF and LEAVE...

בתאריך יום ג׳, 21 במרץ 2023 ב-19:24 מאת Paul Gilmartin <
0000042bfe9c879d-dmarc-requ...@listserv.ua.edu>:

> On Tue, 21 Mar 2023 16:51:17 +0000, Farley, Peter  wrote:
>
> >Great routine ITschak.  I made two small improvements to the name and
> token displays to better handle binary characters (less than '40'x) in
> each part.
> >
> Judicious use of  white space/indention helps/would help legibility.
>
> Use of PROCEDURE EXPOSE could help robustness.
>
> Does this actually "check for the existence of a specific name/token pair"
> as
> the OP requested or merely dump the entire table?  Setting a compound
> symbol would facilitate the former.
>
> Was I mistaken about the need to retry in case of concurrent updates?
>
>
> >Updated code for display subroutine:
> >
> >/* routine to report on name token pairs */
> >Donttp:
> >Parse Arg ptr,title
> >Say title' level NTTP at 'D2X(ptr)
> >eye = Storage(D2X(ptr),4)
> >If eye \= 'NTTH' then Do
> >Say '** Invalid eye catcher found for NTTP'
> >Return
> >End
> >base = C2D(Storage(D2X(ptr+64),4))
> >Do While base \= 0
> >tcbt = C2X(Storage(D2X(base+4),4))
> >name = Storage(D2X(base+8),16)
> >token = C2X(Storage(D2X(base+24),16)) nonprint =
> >verify(name,xrange('40'x)) if nonprint = 0 then
> >   Say 'Name 'name' from 'tcbt
> >else do
> >   name_bin = c2x(substr(name, nonprint))
> >   name = substr(name, 1, nonprint - 1)' + "'name_bin'"'
> >   Say 'Name has binary characters: 'name' from 'tcbt End display =
> >X2C(token)
> >/* translate out characters between 00 and 3f */ display =
> >TRANSLATE(display,,XRANGE(,'3f'x),'.')
> >Say ' Token = 'token' ('display')'
> >base = C2D(Storage(D2X(base+64),4))
> >End
> >Say ''
> >Return
>
> --
> gil
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions, send
> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
--
ITschak Mugzach
*|** IronSphere Platform* *|* *Information Security Continuous Monitoring
for z/OS, x/Linux & IBM I **| z/VM coming soon  *

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email
to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

-- 
This e-mail message has been scanned and cleared by Google Message Security 
and the UNICOM Global security systems. This message is for the named 
person's use only. If you receive this message in error, please delete it 
and notify the sender. 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to