Re: Simple Rexx question

2024-08-22 Thread Seymour J Metz
Why? Either BPXWDYN or LISTDSI is simpler.

-- 
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר




From: IBM Mainframe Discussion List  on behalf of 
Binyamin Dissen <0662573e2c3a-dmarc-requ...@listserv.ua.edu>
Sent: Thursday, August 22, 2024 12:58 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Simple Rexx question

How about

was1=outtrap("trash.")
was2=trapmsg("on")
"EXECIO 5 DISKR Q1Q2Q3 (FINIS"
x=trapmsg(was2)
x=outtrap(was1)

if  rc = 20  /*ddname not found, though trash.1 can be examined */


Let EXECIO do the work





On Wed, 21 Aug 2024 19:28:12 + Billy Ashton
<0665bda14df5-dmarc-requ...@listserv.ua.edu> wrote:

:>Hi all, I have a simple question, but my searches are eluding me (maybe
:>I don't know what to ask for).
:>
:>In my Rexx program, before I try to do an EXECIO against it, I want to
:>do something to make sure the DD statement is there and control the
:>error. I tried ListDSI, but that only works on DASD files and not on
:>instream (DD *) data.
:>
:>How can I test that I have the ABCXYZ DD statement allocated, if it is
:>DD * or DD DATA? Likewise, how can I test for DD JKLMNO that is
:>allocated to SYSOUT=* to be sure it is there (as I am writing via EXECIO
:>to it)?
:>
:>Thank you and best regards,
:>Billy Ashton
:>
:>--
:>For IBM-MAIN subscribe / signoff / archive access instructions,
:>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
Binyamin Dissen 
http://secure-web.cisco.com/1fTNnsHZBpFAOwLB8MNIUnAL3utDNYYje9SXCSOKQzqWZQ8ViL6Ao2-ziiIjLyzoMSqhUqLnIa170KLE-7BVHVPdJ4olhlCc9r5fx27IJbzvPA4i45pYUbXd_vWD8FxgRfodrnz1huv3FpbbZA0VKKMp93J4IWkAafn_mypwOgft_5fOaFxa95zgC4EeVT8dFkkcWGX2KYHobAV9G-s3blDvQXhAQ5Ma6CUBbbVB8TzWIj2VDsjvqsAApZHnwJJWdQOwyIszMbQUas_wQtg_JLkCi0WYOR8taNqHzf9NkG3hQwU-uneB6nvAvLBYQfUeS9KIHbLl-Rx_G9yEvfPjxBj3jyRhOkj10R8IETp2qMB89iLuVc9G4imhgpbiKPMK4Mv17KS9f6JDwRMnS1qeLiw/http%3A%2F%2Fwww.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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



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


Re: SMFLIM Policy question

2024-08-22 Thread Radoslaw Skorupka

How do you recognize the job is "specific"?
Is it smell or colour? :-)

Seriously:
you can use jobname mask or RACF access to some resource.
Or some other identifiers, like jobclass, program name, stepname, 
account number...



--
Radoslaw Skorupka
Lodz, Poland




W dniu 20.08.2024 o 18:53, Mark Jacobs pisze:

How can I code SMFLIMxx such that all batch jobs be assigned limits using the 
policy, except for specific jobs. For those jobs I don't want the policy limits 
to be used. I've been reading the manual and can't seem to find a way to 
accomplish this task.

Mark Jacobs


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


Re: [EXTERNAL] Re: HSM question

2024-08-22 Thread Pommier, Rex
Depending on the tape retention parameters in the TS7770 itself, once HSM 
releases the tapes (and backing disk storage) for reuse, the TS7770 may retain 
the tapes and storage for a few more days.  In your virtual tape area on the 
VTS GUI, check the categories and look at the scratch categories.  If any says 
"x Days Hold", you will need to wait that additional time before the VTS will 
release the tapes.

Rex

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Mike Schwab
Sent: Thursday, August 22, 2024 12:09 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: HSM question

There is usually a delay of a few days to allow undeleted of the tape volumes.  
Best to set an retention period so they expire after so many days / after n 
versions are created.

‪On Thu, Aug 22, 2024 at 12:03 AM ‫גדי בן אבי‬‎  
wrote:‬
>
> Hi,
> We use HSM to backup datasets to virtual tape on a TS7770.
>
> We are getting close the TS7770's capacity and want to reduce the capacity 
> used by HSM.
>
> The current strategy is to find backups we no longer want/need, delete the 
> from HSM, and then use RECYCLE command to merge the tapes that are not full.
>
> After we've done that, the used capacity that the TS7770 reports is not 
> reduced.
>
> My theory is that HSM does not release the tapes (and cache space they take 
> up) when they are empty.
>
> Is this correct?
>
> Is there a way to tell HSM to release empty tapes to the general SCRATCH pool?
>
> Gadi
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send 
> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

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

--
The information contained in this message is confidential, protected from 
disclosure and may be legally privileged. If the reader of this message is not 
the intended recipient or an employee or agent responsible for delivering this 
message to the intended recipient, you are hereby notified that any disclosure, 
distribution, copying, or any action taken or action omitted in reliance on it, 
is strictly prohibited and may be unlawful. If you have received this 
communication in error, please notify us immediately by replying to this 
message and destroy the material in its entirety, whether in electronic or hard 
copy format. Thank you.


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


Re: Simple Rexx question

2024-08-22 Thread Rupert Reynolds
I imagine a lot of useful tools pre-date BPXWDYN and BPXWDY2

I ended up writing something callable from assembly and PL/I, but only for
DISP=SHR and OLD, and I made sure SHR meant (SHR,KEEP,KEEP) :-)

Roops

On Thu, 22 Aug 2024, 12:54 Seymour J Metz,  wrote:

> Why? Either BPXWDYN or LISTDSI is simpler.
>
> --
> Shmuel (Seymour J.) Metz
>

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


Re: Simple Rexx question

2024-08-22 Thread Bob Bridges
I wrote these before learning about BPXWDYN, and I'm used to them now.  To tell 
you the truth, I STILL haven't learned about BPXWDYN, not really; I don't do 
much with Unix, just enough to log on, create a user's home directory, check 
ownership bits and the like.

I don't know what TOCTTOU is.

Yes, it requires TSO.  Well, wait, I run it in TSO/ISPF; I imagine it'll work 
in batch as well but I have no idea about other environments.

The RC and reason codes used:

/* Is it a DSN? */
fds:
  call listdsi dx
  sysreason=sysreason+0
  if result=16 & wordpos(sysreason,'1 5 25')=0,
then say 'DSDD: FDS' dx result sysreason
  return result<16 | sysreason=25

/* Get LISTDSI.  Warning: LISTDSI returns RC=16, sysreason=2 both if
   DD is missing and if it's allocated to a GDG(+1)! */
fdd:
  call listdsi dx 'FILE'
  sysreason=sysreason+0
  if result=16 & wordpos(sysreason,'1 2 3 27 28')=0,
then say 'DSDD: FDD' dx result sysreason
  return result<16 | wordpos(sysreason,'3 27')>0

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* We must picture Hell as a state where everyone is perpetually concerned 
about his own dignity and advancement, where everyone has a grievance, and 
where everyone lives the deadly serious passions of envy, self-importance, and 
resentment.  -C S Lewis, preface to _The Screwtape Letters_ */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Wednesday, August 21, 2024 22:32

--- On Wed, 21 Aug 2024 21:04:34 -0400, Bob Bridges wrote:
>I have two external REXX execs that I use frequently (depending on which one 
>you need):
>
>TEMPDD returns a DD name that is guaranteed not to be currently in use; it's 
>up to the caller to allocate it.  I can specify a prefix; for example, if I 
>call TEMPDD with arg "XYZ" then it might return "XYZ12345" or "XYZ01".
>
Does this have any advantage over BPXWDYN, which uses DYNALLOC to not only 
select a guaranteed unique DD name but also to perform the allocation?

Does this have a TOCTTOU hazard?

Does this require TSO?

>DSDD takes a string argument and returns a two-bit reply indicating whether 
>the string indicates an catalogued DSN and/or a currently allocated DDN.  If I 
>call DSDD with arg "XYZ", and it returns '01', then there's no DSN by that 
>name but my TSO session is currently using that DDN.
>
Is technical support available?

Why not use a standard facility such as BPXWDYN rather than RYO?

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


Re: Simple Rexx question

2024-08-22 Thread Lennie Bradshaw
TOCTTOU
Time Of Check To Time Of Use

Lennie

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Bob 
Bridges
Sent: 22 August 2024 14:29
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Simple Rexx question

I wrote these before learning about BPXWDYN, and I'm used to them now.  To tell 
you the truth, I STILL haven't learned about BPXWDYN, not really; I don't do 
much with Unix, just enough to log on, create a user's home directory, check 
ownership bits and the like.

I don't know what TOCTTOU is.

Yes, it requires TSO.  Well, wait, I run it in TSO/ISPF; I imagine it'll work 
in batch as well but I have no idea about other environments.

The RC and reason codes used:

/* Is it a DSN? */
fds:
  call listdsi dx
  sysreason=sysreason+0
  if result=16 & wordpos(sysreason,'1 5 25')=0,
then say 'DSDD: FDS' dx result sysreason
  return result<16 | sysreason=25

/* Get LISTDSI.  Warning: LISTDSI returns RC=16, sysreason=2 both if
   DD is missing and if it's allocated to a GDG(+1)! */
fdd:
  call listdsi dx 'FILE'
  sysreason=sysreason+0
  if result=16 & wordpos(sysreason,'1 2 3 27 28')=0,
then say 'DSDD: FDD' dx result sysreason
  return result<16 | wordpos(sysreason,'3 27')>0

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* We must picture Hell as a state where everyone is perpetually concerned 
about his own dignity and advancement, where everyone has a grievance, and 
where everyone lives the deadly serious passions of envy, self-importance, and 
resentment.  -C S Lewis, preface to _The Screwtape Letters_ */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Wednesday, August 21, 2024 22:32

--- On Wed, 21 Aug 2024 21:04:34 -0400, Bob Bridges wrote:
>I have two external REXX execs that I use frequently (depending on which one 
>you need):
>
>TEMPDD returns a DD name that is guaranteed not to be currently in use; it's 
>up to the caller to allocate it.  I can specify a prefix; for example, if I 
>call TEMPDD with arg "XYZ" then it might return "XYZ12345" or "XYZ01".
>
Does this have any advantage over BPXWDYN, which uses DYNALLOC to not only 
select a guaranteed unique DD name but also to perform the allocation?

Does this have a TOCTTOU hazard?

Does this require TSO?

>DSDD takes a string argument and returns a two-bit reply indicating whether 
>the string indicates an catalogued DSN and/or a currently allocated DDN.  If I 
>call DSDD with arg "XYZ", and it returns '01', then there's no DSN by that 
>name but my TSO session is currently using that DDN.
>
Is technical support available?

Why not use a standard facility such as BPXWDYN rather than RYO?

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

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


Re: SMFLIM Policy question

2024-08-22 Thread Mark Jacobs
We have two SMFLIMxx policies in effect

1) JOBNAME(*)
2) JOBNAME(specific) with no region settings at all.

Regardless of the order the policies are defined in the member, the job with 
the specific jobname gets assigned the region limits defined in the JOBNAME(*) 
policy.

What I'm trying to do is have all jobs except the ones specifically listed 
assigned the region limits in the JOBNAME(*) policy and nothing being done to 
the specifically listed ones.

Yes, I can use RACF to prevent specific userids from being assigned limits set 
by the JOBNAME(*) policy, but there doesn't seem to be a way to do it on a 
jobname basis if there are multiple jobnames using that same RACF userid.

Mark Jacobs  

Sent from ProtonMail, Swiss-based encrypted email.

GPG Public Key - 
https://api.protonmail.ch/pks/lookup?op=get&search=markjac...@protonmail.com


On Thursday, August 22nd, 2024 at 8:21 AM, Radoslaw Skorupka 
<0471ebeac275-dmarc-requ...@listserv.ua.edu> wrote:

> How do you recognize the job is "specific"?
> Is it smell or colour? :-)
> 
> Seriously:
> you can use jobname mask or RACF access to some resource.
> Or some other identifiers, like jobclass, program name, stepname,
> account number...
> 
> 
> --
> Radoslaw Skorupka
> Lodz, Poland
> 
> 
> 
> 
> W dniu 20.08.2024 o 18:53, Mark Jacobs pisze:
> 
> > How can I code SMFLIMxx such that all batch jobs be assigned limits using 
> > the policy, except for specific jobs. For those jobs I don't want the 
> > policy limits to be used. I've been reading the manual and can't seem to 
> > find a way to accomplish this task.
> > 
> > Mark Jacobs
> 
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

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


Re: [EXTERNAL] Re: HSM question

2024-08-22 Thread גדי בן אבי
Thanks
That was what I was looking for.
There is a 1 day retention period before the tapes are scratched.

Gadi

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Pommier, Rex
Sent: יום ה 22 אוגוסט 2024 16:00
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: [EXTERNAL] Re: HSM question

Depending on the tape retention parameters in the TS7770 itself, once HSM 
releases the tapes (and backing disk storage) for reuse, the TS7770 may retain 
the tapes and storage for a few more days.  In your virtual tape area on the 
VTS GUI, check the categories and look at the scratch categories.  If any says 
"x Days Hold", you will need to wait that additional time before the VTS will 
release the tapes.

Rex

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Mike Schwab
Sent: Thursday, August 22, 2024 12:09 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: HSM question

There is usually a delay of a few days to allow undeleted of the tape volumes.  
Best to set an retention period so they expire after so many days / after n 
versions are created.

‪On Thu, Aug 22, 2024 at 12:03 AM ‫גדי בן אבי‬‎  
wrote:‬
>
> Hi,
> We use HSM to backup datasets to virtual tape on a TS7770.
>
> We are getting close the TS7770's capacity and want to reduce the capacity 
> used by HSM.
>
> The current strategy is to find backups we no longer want/need, delete the 
> from HSM, and then use RECYCLE command to merge the tapes that are not full.
>
> After we've done that, the used capacity that the TS7770 reports is not 
> reduced.
>
> My theory is that HSM does not release the tapes (and cache space they take 
> up) when they are empty.
>
> Is this correct?
>
> Is there a way to tell HSM to release empty tapes to the general SCRATCH pool?
>
> Gadi
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send 
> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

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

--
The information contained in this message is confidential, protected from 
disclosure and may be legally privileged. If the reader of this message is not 
the intended recipient or an employee or agent responsible for delivering this 
message to the intended recipient, you are hereby notified that any disclosure, 
distribution, copying, or any action taken or action omitted in reliance on it, 
is strictly prohibited and may be unlawful. If you have received this 
communication in error, please notify us immediately by replying to this 
message and destroy the material in its entirety, whether in electronic or hard 
copy format. Thank you.


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

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


Re: HSM question

2024-08-22 Thread Lizette Koehler
You might want to do earl or tmsgrw to see how many tapes have zero Block count

Next what is the ttl (time to live) on the TS7700?

Ours is 7 days. Reclaimed tapes are not cycled back to scratch pool in the 
appliance for a week

We do not see any changes in amount of storage until ttl is actioned

Lizette

Sent from EarthLink Mobile mail

On 8/21/24, 22:03, גדי בן אבי  wrote:

Hi,

We use HSM to backup datasets to virtual tape on a TS7770.

We are getting close the TS7770's capacity and want to reduce the capacity used 
by HSM.

The current strategy is to find backups we no longer want/need, delete the from 
HSM, and then use RECYCLE command to merge the tapes that are not full.

After we've done that, the used capacity that the TS7770 reports is not reduced.

My theory is that HSM does not release the tapes (and cache space they take up) 
when they are empty.

Is this correct?

Is there a way to tell HSM to release empty tapes to the general SCRATCH pool?

Gadi

--

For IBM-MAIN subscribe / signoff / archive access instructions,

send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


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


Re: Simple Rexx question

2024-08-22 Thread Thomas Berg
Hi,

I have a rexx that extract info about allocations from current memory. I.
e. it works outside TSO.  (I haven't used it in 8 years so YMMV...)
If you are interested I can send it to you.

Extract from desc text:

/* REXX

 Name: EFQALLOC
 Type: TSO REXX Function
 Function: Returns information about current allocations.

   Partially based on code stolen from Doug Nadel.

 Syntax: EFQALLOC( < sel <, < options > <, output >>>)

   sel Selection criteria in the form of a mask or a
complete DD- or DSname.
(If 'sel' is longer than 8 bytes or contains a '.'
 it is supposed it's a DSname else that it's a
 DDname.)
   options Format or/and sort order of the result.
Could be: SORT SORTDD SORTDS SORTVOL SORTFLAG DD DSN
  VOL FLAG ONLYDD ONLYDS ONLYVOL ODD ODS OVOL DELDUPL
   output Indicates where the output should be sent.
- If empty and 'sel' is specified with one distinct
DDname it's returned as a result if called as a
function or subroutine.
- If 'RETURNVALUES' or an abbreviation thereof is
specified it's returned as a result if called as a
function or subroutine. In this case the resulting
rows (if more than one) is delimited by ';' or as
specified as a second parm after 'RETURNVALUES'.
Example: res = EFQALLOC(,,'RETURN /')
- Otherwise if empty or 'S' or 'STACK' or
'DATASTACK' it's written to the datastack.
- Otherwise if not empty it's written to that
DDname, or if a DSname, to that DS.
 Exempel: rcode = EFQALLOC('ISP*','SORT DD','SYSUT2')
   rcode = EFQALLOC('ISPPROF')
   rcode = EFQALLOC()
--



Availible info:

Parse Value X2b(C2x(c)) With ,
is 2 , /* DSABIS INDEXED SEQUENTIAL ORGANIZATION */
ps 3 , /* DSABPS PHYSICAL SEQUENTIAL ORGANIZATION*/
da 4 , /* DSABDA DIRECT ACCESS ORGANIZATION */
cx 5 , /* DSABCX COMMUNICATIONS LINE GROUP */
cq 6 , /* DSABCQ DIRECT ACCESS MESSAGE Queue */
mq 7 , /* DSABMQ PROBLEM PROGRAM MESSAGE Queue */
po 8 , /* DSABPO PARTITIONED ORGANIZATION */
un 9 , /* DSABU UNMOVEABLE */
gs 10 , /* DSABGS GRAPHICS ORGANIZATION */
tx 11 , /* DSABTX TCAM LINE GROUP */
tq 12 , /* DSABTQ TCAM MESSAGE Queue */
   13 , /* * */
vs 14 , /* DSABAM VSAM */
tr 15 , /* DSABTR TCAM 3705 */
. 16 , /* * */
. 17 , /* * */
dy 18 , /* DSABDALC DYNAMICALLY ALLOCATED */
pe 19 , /* DSABPALC PERMANENTLY ALLOCATED ATTRIBUTE */
dv 20 , /* DSABDCNV DYNAMICALLY CONVERTED */
cv 21 , /* DSABCONV CONVERTIBLE ATTRIBUTE */
dc 22 , /* DSABDCAT DYNAMICALLY CONCATENATED */
pc 23 , /* DSABPCAT PERMANENTLY CONCATENATED */
gm 24 , /* DSABCATM CONCATENATED GROUP MEMBER */
iu 25 , /* DSABNUSE IN-USE ATTRIBUTE */
op 26 , /* DSABOPEN DATA SET HAS BEEN OPENED */
rm 27 , /* DSABIRM D.S. REVERSED MERGED FOR INPUT */
uc 28 , /* DSABUNAL UNALLOCATE When CLOSED */
vl 29 , /* DSABVLF VIRTUAL LOOKASIDE FACILITY */
ch 30 , /* DSABJCHG DSNAME OR VOLSER CHANGED IN */
ni 31 , /* DSABNODI When = 1, no dataset integrity */
. 32 , /* DSABATCT Use alternate TCTIOT offset */
. 33 , /* * */
df 34 , /* DSABDEFR DEFERRED MOUNTING */
pa 35 , /* DSABPASS PASS/RETAIN IND */
vi 36 , /* DSABVAM VIO DATA SET */
vr 37 , /* DSABVMSC VIO PAGING SPACE RELEASED */
ca 38 , /* DSABCATL DATA SET IS A CATALOG */
js 39 , /* DSABJSCT JOBCAT OR STEPCAT DATA SET */
vv 40 , /* DSABVVDS VVDS - ICF CATALOG */
xt 41 , /* DSABTIOX DSAB HAS XTIOT ENTRY */
cd 42 , /* DSABCKDS THIS IS A CHECKPT DATA SET */
sv 43 , /* DSABCKVL VOLUME CONTAIN CKPT DS IS SECURE*/
si 44 , /* DSABCKSI SECURITY INTERF. XIST F CKPT DS */
hi 45 , /* DSABHIER HIERARCHICAL FILE INDICATOR */
an 46 , /* DSABGANM ALTERNATE NAME SECTION GETMAINED*/
la 47 , /* DSABLCAT LAST DATASET IN DD CONCATENATION*/
. 48 , /* DSABAUCB Actual UCBs are to be used */
. 49 . /* DSABCASL DSAB TO BE COPIED INTO


Re: Simple Rexx question

2024-08-22 Thread Paul Gilmartin
On Thu, 22 Aug 2024 09:28:34 -0400, Bob Bridges wrote:

>I wrote these before learning about BPXWDYN, and I'm used to them now.  To 
>tell you the truth, I STILL haven't learned about BPXWDYN, not really; I don't 
>do much with Unix, just enough to log on, create a user's home directory, 
>check ownership bits and the like.
>
BPXWDYN is useful outside UNIX, in environments where LISTDSI is
unavailable, such as IRXJCL.

>I don't know what TOCTTOU is.
>
GIYF.

>Yes, it requires TSO.  Well, wait, I run it in TSO/ISPF; I imagine it'll work 
>in batch as well but I have no idea about other environments.

-- 
gil

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


Re: ODBC from MVS to a non-MVS (say Linux or Windows)

2024-08-22 Thread Attila Fogarasi
ODBC is a programming API for application programs written in C/C++ to use
as an alternative to SQL.  It isn't a connection protocol to a remote
database server.  That connection can be a variety of ways, such as DRDA or
Db2 Connect (that is a gateway) ... it all depends upon the specific remote
system you want to use.  JDBC is often more convenient as it is a
newer/more powerful protocol than ODBC (ODBC is over 30 years old now).
It's a bit unusual to run C/C++ application in z/OS to access non-z/OS SQL
databases using ODBC, depending upon UOW and 2 phase commit requirements
there can be better solutions than ODBC.  Db2 z/OS does have some special
connectivity to remote Db2 systems including LUW with/without ODBC, a bit
easier than to non-Db2 Unix or WIndows systems.

On Wed, Aug 21, 2024 at 1:12 AM Binyamin Dissen <
0662573e2c3a-dmarc-requ...@listserv.ua.edu> wrote:

> It would seem that this would be controlled by the DSNAOINI (based on the
> DSN8OIVP).
>
> It is not clear to me if (1) how to specify the remote non-DB2 connection
> and
> (2) if special software is required. For example, while I can find MYSQL
> ODBC
> for various platforms, I do not see a ZOS version. Are MVS drivers
> required to
> be installed for each database type?
>
> --
> Binyamin Dissen 
> http://www.dissensoftware.com
>
> Director, Dissen Software, Bar & Grill - Israel
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Simple Rexx question

2024-08-22 Thread Binyamin Dissen
Is it?

On Thu, 22 Aug 2024 11:54:12 + Seymour J Metz  wrote:

:>Why? Either BPXWDYN or LISTDSI is simpler.
:>
:>-- 
:>Shmuel (Seymour J.) Metz
:>http://mason.gmu.edu/~smetz3
:>??? ?? ???
:>?? ???  ??
:>
:>
:>
:>
:>From: IBM Mainframe Discussion List  on behalf of 
Binyamin Dissen <0662573e2c3a-dmarc-requ...@listserv.ua.edu>
:>Sent: Thursday, August 22, 2024 12:58 AM
:>To: IBM-MAIN@LISTSERV.UA.EDU
:>Subject: Re: Simple Rexx question
:>
:>How about
:>
:>was1=outtrap("trash.")
:>was2=trapmsg("on")
:>"EXECIO 5 DISKR Q1Q2Q3 (FINIS"
:>x=trapmsg(was2)
:>x=outtrap(was1)
:>
:>if  rc = 20  /*ddname not found, though trash.1 can be examined */
:>
:>
:>Let EXECIO do the work
:>
:>
:>
:>
:>
:>On Wed, 21 Aug 2024 19:28:12 + Billy Ashton
:><0665bda14df5-dmarc-requ...@listserv.ua.edu> wrote:
:>
:>:>Hi all, I have a simple question, but my searches are eluding me (maybe
:>:>I don't know what to ask for).
:>:>
:>:>In my Rexx program, before I try to do an EXECIO against it, I want to
:>:>do something to make sure the DD statement is there and control the
:>:>error. I tried ListDSI, but that only works on DASD files and not on
:>:>instream (DD *) data.
:>:>
:>:>How can I test that I have the ABCXYZ DD statement allocated, if it is
:>:>DD * or DD DATA? Likewise, how can I test for DD JKLMNO that is
:>:>allocated to SYSOUT=* to be sure it is there (as I am writing via EXECIO
:>:>to it)?
:>:>
:>:>Thank you and best regards,
:>:>Billy Ashton
:>:>
:>:>--
:>:>For IBM-MAIN subscribe / signoff / archive access instructions,
:>:>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: Simple Rexx question

2024-08-22 Thread Seymour J Metz
Does it dual path the SWA? BPXWDYN takes care of all the housekeeping in every 
environment.

-- 
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר


From: IBM Mainframe Discussion List  on behalf of 
Thomas Berg <0619bfe39560-dmarc-requ...@listserv.ua.edu>
Sent: Thursday, August 22, 2024 10:31 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Simple Rexx question

Hi,

I have a rexx that extract info about allocations from current memory. I.
e. it works outside TSO.  (I haven't used it in 8 years so YMMV...)
If you are interested I can send it to you.

Extract from desc text:

/* REXX

 Name: EFQALLOC
 Type: TSO REXX Function
 Function: Returns information about current allocations.

   Partially based on code stolen from Doug Nadel.

 Syntax: EFQALLOC( < sel <, < options > <, output >>>)

   sel Selection criteria in the form of a mask or a
complete DD- or DSname.
(If 'sel' is longer than 8 bytes or contains a '.'
 it is supposed it's a DSname else that it's a
 DDname.)
   options Format or/and sort order of the result.
Could be: SORT SORTDD SORTDS SORTVOL SORTFLAG DD DSN
  VOL FLAG ONLYDD ONLYDS ONLYVOL ODD ODS OVOL DELDUPL
   output Indicates where the output should be sent.
- If empty and 'sel' is specified with one distinct
DDname it's returned as a result if called as a
function or subroutine.
- If 'RETURNVALUES' or an abbreviation thereof is
specified it's returned as a result if called as a
function or subroutine. In this case the resulting
rows (if more than one) is delimited by ';' or as
specified as a second parm after 'RETURNVALUES'.
Example: res = EFQALLOC(,,'RETURN /')
- Otherwise if empty or 'S' or 'STACK' or
'DATASTACK' it's written to the datastack.
- Otherwise if not empty it's written to that
DDname, or if a DSname, to that DS.
 Exempel: rcode = EFQALLOC('ISP*','SORT DD','SYSUT2')
   rcode = EFQALLOC('ISPPROF')
   rcode = EFQALLOC()
--



Availible info:

Parse Value X2b(C2x(c)) With ,
is 2 , /* DSABIS INDEXED SEQUENTIAL ORGANIZATION */
ps 3 , /* DSABPS PHYSICAL SEQUENTIAL ORGANIZATION*/
da 4 , /* DSABDA DIRECT ACCESS ORGANIZATION */
cx 5 , /* DSABCX COMMUNICATIONS LINE GROUP */
cq 6 , /* DSABCQ DIRECT ACCESS MESSAGE Queue */
mq 7 , /* DSABMQ PROBLEM PROGRAM MESSAGE Queue */
po 8 , /* DSABPO PARTITIONED ORGANIZATION */
un 9 , /* DSABU UNMOVEABLE */
gs 10 , /* DSABGS GRAPHICS ORGANIZATION */
tx 11 , /* DSABTX TCAM LINE GROUP */
tq 12 , /* DSABTQ TCAM MESSAGE Queue */
   13 , /* * */
vs 14 , /* DSABAM VSAM */
tr 15 , /* DSABTR TCAM 3705 */
. 16 , /* * */
. 17 , /* * */
dy 18 , /* DSABDALC DYNAMICALLY ALLOCATED */
pe 19 , /* DSABPALC PERMANENTLY ALLOCATED ATTRIBUTE */
dv 20 , /* DSABDCNV DYNAMICALLY CONVERTED */
cv 21 , /* DSABCONV CONVERTIBLE ATTRIBUTE */
dc 22 , /* DSABDCAT DYNAMICALLY CONCATENATED */
pc 23 , /* DSABPCAT PERMANENTLY CONCATENATED */
gm 24 , /* DSABCATM CONCATENATED GROUP MEMBER */
iu 25 , /* DSABNUSE IN-USE ATTRIBUTE */
op 26 , /* DSABOPEN DATA SET HAS BEEN OPENED */
rm 27 , /* DSABIRM D.S. REVERSED MERGED FOR INPUT */
uc 28 , /* DSABUNAL UNALLOCATE When CLOSED */
vl 29 , /* DSABVLF VIRTUAL LOOKASIDE FACILITY */
ch 30 , /* DSABJCHG DSNAME OR VOLSER CHANGED IN */
ni 31 , /* DSABNODI When = 1, no dataset integrity */
. 32 , /* DSABATCT Use alternate TCTIOT offset */
. 33 , /* * */
df 34 , /* DSABDEFR DEFERRED MOUNTING */
pa 35 , /* DSABPASS PASS/RETAIN IND */
vi 36 , /* DSABVAM VIO DATA SET */
vr 37 , /* DSABVMSC VIO PAGING SPACE RELEASED */
ca 38 , /* DSABCATL DATA SET IS A CATALOG */
js 39 , /* DSABJSCT JOBCAT OR STEPCAT DATA SET */
vv 40 , /* DSABVVDS VVDS - ICF CATALOG */
xt 41 , /* DSABTIOX DSAB HAS XTIOT ENTRY */
cd 42 , /* DSABCKDS THIS IS A CHECKPT DATA SET */
  

Re: Simple Rexx question

2024-08-22 Thread Thomas Berg
I can't answer that, the code is ftom Doug Nadel.
The SWA part is as follows:

GET_SWAREQ: Procedure Expose a.
  If Right(C2x(Arg(1)),1) <> 'F' Then /* SWA=BELOW ? */
  Return C2d(Arg(1)) + 16 /* YES, Return SVA+16 */
  sva = C2d(Arg(1)) /* CONVERT TO DECIMAL */
  tcb = PTR(540) /* TCB PSATOLD */
  jscb = PTR(tcb + 180) /* JSCB TCBJSCB */
  qmpl = PTR(jscb + 244) /* QMPL JSCBQMPI */
  qmat = PTR(qmpl + 24) /* QMAT QMADD */
  Do While sva > 65536
  qmat = PTR(qmat + 12) /* NEXT QMAT QMAT+12 */
  sva = sva - 65536 /* 010006F -> 06F */
  End
END_GET_SWAREQ:
  Return PTR(qmat + sva + 1) + 16


Thomas


Den tors 22 aug. 2024 18:31Seymour J Metz  skrev:

> Does it dual path the SWA? BPXWDYN takes care of all the housekeeping in
> every environment.
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
> עַם יִשְׂרָאֵל חַי
> נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר
>
> 
> From: IBM Mainframe Discussion List  on behalf
> of Thomas Berg <0619bfe39560-dmarc-requ...@listserv.ua.edu>
> Sent: Thursday, August 22, 2024 10:31 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Simple Rexx question
>
> Hi,
>
> I have a rexx that extract info about allocations from current memory. I.
> e. it works outside TSO.  (I haven't used it in 8 years so YMMV...)
> If you are interested I can send it to you.
>
> Extract from desc text:
>
> /* REXX
> 
>  Name: EFQALLOC
>  Type: TSO REXX Function
>  Function: Returns information about current allocations.
>
>Partially based on code stolen from Doug Nadel.
>
>  Syntax: EFQALLOC( < sel <, < options > <, output >>>)
>
>sel Selection criteria in the form of a mask or a
> complete DD- or DSname.
> (If 'sel' is longer than 8 bytes or contains a '.'
>  it is supposed it's a DSname else that it's a
>  DDname.)
>options Format or/and sort order of the result.
> Could be: SORT SORTDD SORTDS SORTVOL SORTFLAG DD DSN
>   VOL FLAG ONLYDD ONLYDS ONLYVOL ODD ODS OVOL DELDUPL
>output Indicates where the output should be sent.
> - If empty and 'sel' is specified with one distinct
> DDname it's returned as a result if called as a
> function or subroutine.
> - If 'RETURNVALUES' or an abbreviation thereof is
> specified it's returned as a result if called as a
> function or subroutine. In this case the resulting
> rows (if more than one) is delimited by ';' or as
> specified as a second parm after 'RETURNVALUES'.
> Example: res = EFQALLOC(,,'RETURN /')
> - Otherwise if empty or 'S' or 'STACK' or
> 'DATASTACK' it's written to the datastack.
> - Otherwise if not empty it's written to that
> DDname, or if a DSname, to that DS.
>  Exempel: rcode = EFQALLOC('ISP*','SORT DD','SYSUT2')
>rcode = EFQALLOC('ISPPROF')
>rcode = EFQALLOC()
> --
>
>
>
> Availible info:
>
> Parse Value X2b(C2x(c)) With ,
> is 2 , /* DSABIS INDEXED SEQUENTIAL ORGANIZATION */
> ps 3 , /* DSABPS PHYSICAL SEQUENTIAL ORGANIZATION*/
> da 4 , /* DSABDA DIRECT ACCESS ORGANIZATION */
> cx 5 , /* DSABCX COMMUNICATIONS LINE GROUP */
> cq 6 , /* DSABCQ DIRECT ACCESS MESSAGE Queue */
> mq 7 , /* DSABMQ PROBLEM PROGRAM MESSAGE Queue */
> po 8 , /* DSABPO PARTITIONED ORGANIZATION */
> un 9 , /* DSABU UNMOVEABLE */
> gs 10 , /* DSABGS GRAPHICS ORGANIZATION */
> tx 11 , /* DSABTX TCAM LINE GROUP */
> tq 12 , /* DSABTQ TCAM MESSAGE Queue */
>13 , /* * */
> vs 14 , /* DSABAM VSAM */
> tr 15 , /* DSABTR TCAM 3705 */
> . 16 , /* * */
> . 17 , /* * */
> dy 18 , /* DSABDALC DYNAMICALLY ALLOCATED */
> pe 19 , /* DSABPALC PERMANENTLY ALLOCATED ATTRIBUTE */
> dv 20 , /* DSABDCNV DYNAMICALLY CONVERTED */
> cv 21 , /* DSABCONV CONVERTIBLE ATTRIBUTE */
> dc 22 , /* DSABDCAT DYNAMICALLY CONCATENATED */
> pc 23 , /* DSABPCAT PERMANENTLY CONCATENATED */
> gm 24 , /* DSABCATM CONCATENATED GROUP MEMBER */
> iu 25 , /* DSABNUSE IN-USE ATTRIBUTE */
> op 26 , /* DSABOPEN DATA SET HAS BEEN OPENED */
> rm 27 , /* DSABIRM D.S. REVERSED MERGED FOR INPUT */
> uc 28 , /* DSABUNAL UNALLOCATE When CLOSED */
>

Re: Simple Rexx question

2024-08-22 Thread Glenn Knickerbocker
Won't work for USS files, though.  Those will need BPXWDYN.

https://www.ibm.com/docs/en/zos/3.1.0?topic=tef-listdsi says
> Restriction: LISTDSI does not support files in the UNIX file system. 
> Unpredictable results might occur.

 9 *-*  "ALLOCATE DD("Arg(1)")" Arg(2) 
   >>>"ALLOCATE DD(SOMEFILE) PATH('/u/gsknick/some.file')" 
10 *-*  Call ListDSI Arg(1) "FILE" 
   >>>"SOMEFILE FILE"  
   >>>"16" 
11 *-*  Trace N
RESULT=16 
SYSREASON =0002   
SYSMSGLVL1=IKJ58400I LISTDSI FAILED.  SEE REASON CODE IN VARIABLE SYSREASON.  
SYSMSGLVL2=IKJ56231I UTILITY DATA SET NOT ALLOCATED, SYSTEM OR INSTALLATION 
ERROR+

27 *-*   Call BPXwdyn "info fi("Arg(1)") inrtdsn(inrtdsn) 
inrtpath(inrtpath)"
   >>> "info fi(SOMEFILE) inrtdsn(inrtdsn) inrtpath(inrtpath)" 
   >>> "0" 
28 *-*   Trace N   
RESULT=0
S99MSG.0  =0
INRTDSN   =...PATH=.SPECIFIED...   
INRTPATH  =/u/gsknick/some.file

¬R

On Thu, 22 Aug 2024 00:36:59 +, Seymour J Metz  wrote:
>I've never tried it, but it should.
>
>From: IBM Mainframe Discussion List  on behalf of 
>Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu>
>Sent: Wednesday, August 21, 2024 6:16 PM
>On Wed, 21 Aug 2024 9::54:38 +, Seymour J Metz  wrote:
>>LISTDSI has a FILENAEE option to test a ddname.
>>r == LISTDSI(ABCXYZ FILE)
>Will that work for tapes?

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


Re: Simple Rexx question

2024-08-22 Thread Paul Gilmartin
On Thu, 22 Aug 2024 07:58:28 +0300, Binyamin Dissen  wrote:
>...
>"EXECIO 5 DISKR Q1Q2Q3 (FINIS"
>
Fairly good idea.  But suppose  Q1Q2Q3 contains fewer
than 5 records.  I'll suggest:   
"EXECIO 0 DISK{r|w} Q1Q2Q3 (OPEN"  

Be sure to handle correctly the case where Q1Q2Q3 is
writable but not readable.

-- 
gil

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


WLM question : Is ziip service units counted in period switching

2024-08-22 Thread shivang sharma
Hi ,

We have deined a multiperiod ddf workload service class with a duration of
20 service units in its 1st period.

I am wondering if wlm also uses ziip service units in period switching?

We have ioc mso coefficient = 0 and srb tcb = 1

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


Re: Simple Rexx question

2024-08-22 Thread Billy Ashton
Well, there were a lot of interesting comments and ideas here. My needs 
are pretty simple - check to see if the DD statements I need are defined 
in my job before I try to read or write them.


I did some testing on using BPXWDYN Info, which gave the clearest 
details on the file status, and EXECIO read or write of 1 record. The 
results were interesting.

For input:
from instream SYSIN:  BPX was an average of 66% faster 99% of the time 
(against 10,000 iterations)

from a DD DUMMY: EXECIO was 33% faster 83% of the time
from a PDS member: BPX was 72% faster 99+% of the time

For output:
to an empty PDS member: BPX was 73% faster 99.7% of the time
to a PDS member with data: BPX was 95% faster 100% of the time (I guess 
there was a lot of work to set the EOF pointer and such)

to SYSOUT=* (most common): BPX was 78% faster 99+% of the time
to a DD DUMMY file: EXECIO was 63% faster 93% of the time
I don't expect that these files will be DUMMY files in normal usage, so 
it seems pretty clear that BPX is the more efficient of the two options 
here. However, based on these points:

I only need to check four files in my program
The program will have occasional usage and not many times every day
Someone else may need to support this who is more junior
I already use EXECIO extensively in the program for all my I/O
I am going to use the EXECIO logic. The line count of code is not too 
different, and it will be an internal routine, anyway.


Thanks for the options and for offering the other code bits...maybe if I 
get more free time down the road, I will do a more exhaustive analysis 
of this, but I'm too covered up right now...


Billy


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Binyamin Dissen" <0662573e2c3a-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 8/22/2024 12:58:28 AM
Subject Re: Simple Rexx question


How about

was1=outtrap("trash.")
was2=trapmsg("on")
"EXECIO 5 DISKR Q1Q2Q3 (FINIS"
x=trapmsg(was2)
x=outtrap(was1)

if  rc = 20  /*ddname not found, though trash.1 can be examined */


Let EXECIO do the work





On Wed, 21 Aug 2024 19:28:12 + Billy Ashton
<0665bda14df5-dmarc-requ...@listserv.ua.edu> wrote:

:>Hi all, I have a simple question, but my searches are eluding me (maybe
:>I don't know what to ask for).
">😁
:>In my Rexx program, before I try to do an EXECIO against it, I want to
:>do something to make sure the DD statement is there and control the
:>error. I tried ListDSI, but that only works on DASD files and not on
:>instream (DD *) data.
">😁
:>How can I test that I have the ABCXYZ DD statement allocated, if it is
:>DD * or DD DATA? Likewise, how can I test for DD JKLMNO that is
:>allocated to SYSOUT=* to be sure it is there (as I am writing via EXECIO
:>to it)?
">😁
:>Thank you and best regards,
:>Billy Ashton
">😁
">😁--
:>For IBM-MAIN subscribe / signoff / archive access instructions,
:>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


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


Re: Simple Rexx question

2024-08-22 Thread Paul Gilmartin
On Thu, 22 Aug 2024 18:33:10 +, Billy Ashton  wrote:
> .
>For output:
>to a PDS member with data: BPX was 95% faster 100% of the time (I guess 
>there was a lot of work to set the EOF pointer and such)
>...
Update-in-place PDS member?  I understand this was done for UADS
to obviate the need for compressing a perpetually open data set.
How?  BLDL; POINT; WRITE?  I'd be surprised if that works for PDSE.

It appears that greater design attention has been paid to the more
recent facility.

-- 
gil

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


Re: Simple Rexx question

2024-08-22 Thread Bernd Oppolzer

If checking for a certain DD name is really all that you need
then the easiest and fastest method IMHO is a very small ASSEMBLER (or C 
or PL/1) routine

which scans the TIOT (Task I/O table) for this DD name.
The ASSEMBLER version is the easiest and shortest (and fastest); only 
five to seven machine instructions.
But you can do it in C or PL/1, too. It is not very complicated, but it 
does not look very good in these
languages (especially in PL/1, C is better). If you want, I could send 
you the code (offline).


Kind regards

Bernd


Am 22.08.2024 um 20:33 schrieb Billy Ashton:
Well, there were a lot of interesting comments and ideas here. My 
needs are pretty simple -
check to see if the DD statements I need are defined in my job before 
I try to read or write them.




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


Re: Simple Rexx question

2024-08-22 Thread Seymour J Metz
The UPDAT option of OPEN is fully supported for PDS  and PDSE.

-- 
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר




From: IBM Mainframe Discussion List  on behalf of 
Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu>
Sent: Thursday, August 22, 2024 3:18 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Simple Rexx question

On Thu, 22 Aug 2024 18:33:10 +, Billy Ashton  wrote:
> .
>For output:
>to a PDS member with data: BPX was 95% faster 100% of the time (I guess
>there was a lot of work to set the EOF pointer and such)
>...
Update-in-place PDS member?  I understand this was done for UADS
to obviate the need for compressing a perpetually open data set.
How?  BLDL; POINT; WRITE?  I'd be surprised if that works for PDSE.

It appears that greater design attention has been paid to the more
recent facility.

--
gil

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


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


Re: Simple Rexx question

2024-08-22 Thread Bob Bridges
Wait, so was Gil just asking whether there's a "danger" of (for example) the 
DSN not being there when I run DSDD, but then coïncidentally having been 
catalogued 20 milliseconds later when I start to try to create it?

I guess that's a function not of DSDD itself but of whatever routine uses it.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* The cities are for money but the high-up hills are purely for the soul.  
-from _Galloway_ by Louis L'Amour */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Lennie Bradshaw
Sent: Thursday, August 22, 2024 09:33

TOCTTOU
Time Of Check To Time Of Use

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Bob 
Bridges
Sent: 22 August 2024 14:29

I don't know what TOCTTOU is.

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Wednesday, August 21, 2024 22:32

Does this have a TOCTTOU hazard?

--- On Wed, 21 Aug 2024 21:04:34 -0400, Bob Bridges wrote:
>I have two external REXX execs that I use frequently (depending on which one 
>you need):
>
>TEMPDD returns a DD name that is guaranteed not to be currently in use; it's 
>up to the caller to allocate it.  I can specify a prefix; for example, if I 
>call TEMPDD with arg "XYZ" then it might return "XYZ12345" or "XYZ01".

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


Re: Simple Rexx question

2024-08-22 Thread Lennie Bradshaw
That is generally the sort of thing TOCTTOU refers to. However, it is usually 
used in a security context. Security checks and decisions should generally be 
made in a single function where there is no ambiguity. 
In this case it, in order to avoid TOCTTOU issues you would need to invoke an 
EXECIO function that, when it fails, tells you why exactly why it failed, or 
give you sufficient program information to deduce why, without invoking some 
other check against the same thing.

Lennie
-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Bob 
Bridges
Sent: 22 August 2024 21:57
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Simple Rexx question

Wait, so was Gil just asking whether there's a "danger" of (for example) the 
DSN not being there when I run DSDD, but then coïncidentally having been 
catalogued 20 milliseconds later when I start to try to create it?

I guess that's a function not of DSDD itself but of whatever routine uses it.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* The cities are for money but the high-up hills are purely for the soul.  
-from _Galloway_ by Louis L'Amour */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Lennie Bradshaw
Sent: Thursday, August 22, 2024 09:33

TOCTTOU
Time Of Check To Time Of Use

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Bob 
Bridges
Sent: 22 August 2024 14:29

I don't know what TOCTTOU is.

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Wednesday, August 21, 2024 22:32

Does this have a TOCTTOU hazard?

--- On Wed, 21 Aug 2024 21:04:34 -0400, Bob Bridges wrote:
>I have two external REXX execs that I use frequently (depending on which one 
>you need):
>
>TEMPDD returns a DD name that is guaranteed not to be currently in use; it's 
>up to the caller to allocate it.  I can specify a prefix; for example, if I 
>call TEMPDD with arg "XYZ" then it might return "XYZ12345" or "XYZ01".

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

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


Re: Simple Rexx question

2024-08-22 Thread Paul Gilmartin
On Thu, 22 Aug 2024 16:57:05 -0400, Bob Bridges wrote:

>Wait, so was Gil just asking whether there's a "danger" of (for example) the 
>DSN not being there when I run DSDD, but then coïncidentally having been 
>catalogued 20 milliseconds later when I start to try to create it?
>
>I guess that's a function not of DSDD itself but of whatever routine uses it.
>
And  of programmers for using such a flawed improvised
routine when they could use a standard one without the flaw.

-- 
gil

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


Re: Simple Rexx question

2024-08-22 Thread Bob Bridges
I don't think I see the flaw yet.  How would you define it?  Because all DSDD 
does is tell me whether a character string represents a (catalogued) DSN and/or 
an (allocated) DDN; and if the problem you're thinking of is that the situation 
may have changed milliseconds later, how will any other routine avoid that?  
I'm sure you have something in mind, but I don't know what.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* Don't be daunted and intimidated by the thought police.  Despite what they'd 
have you believe, you are not a criminal.  Stick to your principle; don't be 
afraid to unapologetically admit your belief in those corny old traditional 
values.  Ultimately, this will get you respect.  Once you have respect, then 
you will have the ability to persuade.  That's the way to reclaim our culture.  
-from "See, I Told You So" by Rush Limbaugh */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Thursday, August 22, 2024 18:26

And  of programmers for using such a flawed improvised routine when they could 
use a standard one without the flaw.

--- On Thu, 22 Aug 2024 16:57:05 -0400, Bob Bridges wrote:
>Wait, so was Gil just asking whether there's a "danger" of (for example) the 
>DSN not being there when I run DSDD, but then coïncidentally having been 
>catalogued 20 milliseconds later when I start to try to create it?

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


Re: Simple Rexx question

2024-08-22 Thread Paul Gilmartin
On Thu, 22 Aug 2024 19:15:13 -0400, Bob Bridges wrote:

>I don't think I see the flaw yet.  How would you define it?  Because all DSDD 
>does is tell me whether a character string represents a (catalogued) DSN 
>and/or an (allocated) DDN; and if the problem you're thinking of is that the 
>situation may have changed milliseconds later, how will any other routine 
>avoid that?  I'm sure you have something in mind, but I don't know what.
> 

See:
RTDDN(variable)
Returns allocated ddname into the REXX variable variable.

The underlying Assembler service is DYNALLOC.  I don't know the related TU.

-- 
gil

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


Re: Debugging syscall / SLIP for reason code

2024-08-22 Thread Peter Relson

SLIP set,if,a=SYNCSVCD,RANGE=(10?+8C?+F0?+1F4?),DATA=(13R??+b0,EQ,112B 
),DSPNAME=('OMVS'.*)


If the instruction located by OCVTERRA gets control for this situation (that's 
what your RANGE keyword gets you) and if your DATA expression is correct, then 
the trap will match.
As suggested you might want to add jobname or ASID, but that will just limit 
the trap to matching for your case (where otherwise it will also match for some 
other job).
If the trap isn't matching at all, then jobname/ASID won't help make it match.

You might temporarily try removing the DATA expression in case the problem is 
that that expression is not correct (you'll definitely want to apply 
JOBNAME/ASID if you do that).
Then you'd at least see if the instruction does get control (although it might 
not be for the case of interest).
If the trap matches without the DATA expression, but not with it, then you'll 
need to figure out what's wrong with that expression.

Peter Relson
z/OS Core Technology Design


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


Re: Debugging syscall / SLIP for reason code

2024-08-22 Thread Peter Relson
If entered exactly as shown in the original post (the SLIP command and then the 
response to the WTOR), that response would have failed and not set a SLIP trap.
As eagle eye Adam spotted, the blank after the address in DATA ends the input 
data, requiring the WTOR response to start with the (missing) close-paren.
But the WTOR response shown did not.

This is not my area at all, but this reason code is produced in module BPXVSSOC.
Nominally it has something to do with not finding a suitable Socket GFS and 
suitable VFS for that GFS (matching the input domain). I don't happen to know 
anything about either of those.
Once it did not find a suitable VFS, you could get 112B.

This was not just "reason" 112B, it was errno 45A and errnojr 112B, for 
what that's worth.
You can find some info about that case on IBM Docs within the diagnosis 
reference (search for 45A and/or 112B) which gets you here:
https://www.ibm.com/docs/en/zos/3.1.0?topic=location-ipv6-format-address-issues-errno45a-errnojr112b
It might not apply to your case.

Was there no documentation for this syscall about this reason code to give you 
a clue what might have gone wrong?

Getting an SVC Dump at that point within OMVS processing seems unlikely to shed 
much light to a user unless you can find your code and data.
But if you do, this module might run in cross-memory mode, such that the 
caller's data is not in the current primary address space. You might need to 
make sure to include secondary and/or home address spaces in the dump.

I don't know if that helps you or not.

Peter Relson
z/OS Core Technology Design


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


Re: HSM question

2024-08-22 Thread Brian Westerman
Is it possible that you have not been running the Backup EXPIRE processing or 
the recycle processing (for a long time)?

I had a site that "thought" they were doing it on a schedule and it turned out 
they had not executed it in over 10 years.  Their use of tape for HSM was cut 
in 1/2 in a single day.

Also, you probably want to make sure that your HSM tapes are not separate from 
your regular tapes, because over time HSM will just eat them up since he never 
has to give them back.

You might also want to look into the number of backup versions you are keeping 
for your datasets, some sites have some pretty large numbers for both 
production and test data, and they end up with a very large percentage of their 
space being taken up by a huge number of test datasets that they will never use 
again.

Brian

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