Re: IPCS command to display dataspaces connected to by an arbitral DU

2021-07-31 Thread Peter Relson
I don't know about the IPCS command, but the DUCT address is in the STCB 
(and in CR2 while executing).
The value in the XSB is used to manage information about the DUCT when, in 
particular, IRBs are involved.

STCBALOV has the virtual address of the DU's access list for a task.

There are no programming interfaces in the WEB. No macro is provided. Some 
information can be found in the Data Areas book.

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: Concatenated datasets

2021-07-31 Thread Peter Relson

How can one determine where a module is obtained from when the module is 
in a concatinated dataset list?
So for example you want to load module A and your dataset list is:
//modules  dd  disp=shr,dsn=hlq1.ds1 has modules qwert
//dd  disp=shr,dsn=hlq1.ds2 has modules asdf
//dd  disp=shr,dsn=hlq2.ds5 has modules zxcv
So now you would get in return that module A comes from hlq1.ds2


As has been mentioned, BLDL and DESERV are the answers to the question of 
"which numbered data set in this concatenation has A?".
Finding the data set name itself is more involved (perhaps using a service 
such as RDJFCB). 

But is there any way "after the LOAD"? IOW I have already loaded the 
module and now I want to learn the source. I don't know. Does CSVQUERY or 
similar return this info?


z/OS itself does not, and will not, do anything to capture this 
information as a general approach when it does the LOAD because z/OS has 
no need for it and there would be negative performance ramifications of 
locating the information. 

Relying on the intentionally undocumented contents of CSVQUERY's OUTPDATA 
is unwise. That parameter is provided so that the returned data can be 
input to other services which are in synch with the implementation.

If you'd like a hint of something we might document in the future, with 
data available today, it's the 8 byte data set key (CSVQUERY OUTDSKEY 
keyword).
That consists of a 4-byte UCB address and the CCHH of the data set extent 
(this is information retrieved from the DEB for the concatenation as 
identified by BLDL/DESERV). It is possible to work with that data along 
with additional info (such as the VTOC, I think) and determine the name of 
the data set.

But the OP's use case is not limited to modules. Thus any CSVQUERY 
information is not helpful in general. So doing it yourself via 
BLDL/DESERV against the opened concatenation or using the approach Tom 
Conley mentioned would work. I'd guess that many sites already have some 
tool that can "locate" within an "opened DD" a member and tell you the 
data set name in which the member lives. 

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: DFSORT - AND/OR mystery

2021-07-31 Thread Radoslaw Skorupka

W dniu 30.07.2021 o 19:35, Sri h Kolusu pisze:

3. I found another mystery, which seems to be APARable:
But this statement gives zero records. Note, I added "OR" conditions, so

   it cannot narrow the output.

Radoslaw,

I would respectfully disagree with that statement. I explained the quirks
of having Variable record lengths have on the comparison tests.  Use the
control cards that I showed and if you are still NOT getting the right
results, then please open a case with IBM support.
IMHO you wouldn't need that, but just in case !


Sri,

Thank you for your explanations. VLSCMP solved the issue.
The trick was related to variable length of records.
However I sustain that for fixed length (or long enough variable) 
records adding conditions using OR cannot narrow the output. In other 
words one cannot less records than before adding conditions.

Nevermind, thank you again!


--
Radoslaw Skorupka
Lodz, Poland

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


Re: DFSORT - AND/OR mystery

2021-07-31 Thread Bernd Oppolzer

FWIW, the offset at number 3, second example, 4th line, is 99, not 98.
Maybe this is part of the problem.

Kind regards

Bernd


Am 30.07.2021 um 17:45 schrieb Radoslaw Skorupka:

W dniu 30.07.2021 o 17:33, Paul Gilmartin pisze:

On Fri, 30 Jul 2021 09:54:51 -0500, Mike Schwab wrote:


Try 5 pairs of conditions?
INCLUDE COND=((5,4,CH,EQ,C'0205',AND,83,3,CH,EQ,C'YES'),
OR,(5,4,CH,EQ,C'0205',AND,88,3,CH,EQ,C'YES'),
OR,(5,4,CH,EQ,C'0205',AND,93,3,CH,EQ,C'YES'),
OR,(5,4,CH,EQ,C'0205',AND,98,3,CH,EQ,C'YES'),
OR,(5,4,CH,EQ,C'0102',AND,28,7,CH,NE,C'USE    '))


What's DFSORT's operator precedence?  Was it necessary to bracket the
conjunctions in order that they have higher precedence than
the alternations?

Are you just rewriting Radoslaw's expression according to the 
Distributive Law?

Does DFSORTT not recognize the Distributive Law?


1. Operator precedence. According to documentation AND is first. 
However parenthesis should change it and it is allow to use as many 
parenthesis as needed.


2. DFSORT should recognize the law (Rozdzielność działań in Polish)

3. I found another mystery, which seems to be APARable:

The following statement gives several test records as expected:
INCLUDE COND=(5,4,CH,EQ,C'0205',AND,(83,3,CH,EQ,C'YES',OR,
 88,3,CH,EQ,C'YES',OR,
 93,3,CH,EQ,C'YES',OR,
 98,3,CH,EQ,C'YES'))

But this statement gives zero records. Note, I added "OR" conditions, 
so it cannot narrow the output.

INCLUDE COND=(5,4,CH,EQ,C'0205',AND,(83,3,CH,EQ,C'YES',OR,
 88,3,CH,EQ,C'YES',OR,
 93,3,CH,EQ,C'YES',OR,
 99,3,CH,EQ,C'YES',OR,
    103,3,CH,EQ,C'YES',OR,
    113,3,CH,EQ,C'YES'))








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