Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-19 Thread Tony Harminc
On Tue, 19 Apr 2022 at 20:58, CM Poncelet
<03e99a92061c-dmarc-requ...@listserv.ua.edu> wrote:
>
> FWIW No idea what "runarray" does, but attached is an example [in this
> case for a CICS SVC dump] of some native IPCS REXX [as IPCSREXX.txt] -
> which can then be modified to read/process any system dump.
>
> BTW Was written to be executed from within IPCS - else add "ARG" and
> "ADDRESS IPCS" etc. cards at the start of the REXX code if to be invoked
> via TSO batch JCL.

I'm just curious what the purpose of

X_E0 = C2X('E0'X)
X_00 = C2X('00'X)
X_40 = C2X('40'X)
X_60 = C2X('60'X)
X_80 = C2X('80'X)
X_C0 = C2X('C0'X)

is.

Tony H.

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


Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-19 Thread CM Poncelet
FWIW No idea what "runarray" does, but attached is an example [in this
case for a CICS SVC dump] of some native IPCS REXX [as IPCSREXX.txt] -
which can then be modified to read/process any system dump. 
 
BTW Was written to be executed from within IPCS - else add "ARG" and
"ADDRESS IPCS" etc. cards at the start of the REXX code if to be invoked
via TSO batch JCL.
 
HTH


On 19/04/2022 23:45, Richard Pace wrote:
> Hi Ben: Not sure if you're still looking...Here's my example. I had an array 
> of 512 size blocks that I wanted to display 6 bytes from offset +8 in each 
> block (a volser). I positioned IPCS at the first block and tried this:
>
> ipcs runarray address(+0) length(512) entries(1:10) exec((list X+8 length(6)))
>
> This did not work. It listed the first control block repeatedly, similar to 
> what you experienced I think.  On advice from IBM, I changed the command to 
> this:
>
> ipcs runarray address(+8) length(512) entries(1:10) exec((list X length(6)))
>
> This worked -- setting the displacement value, +8,  in the address field, 
> instead of trying to add to X.   I didn't really get an explanation from IBM; 
> just "working as designed".  However, I suspect that inside the EXEC,  LIST 
> X+n is treated different than LIST X; i.e. X only needs to be evaluated once 
> for X+n, whereas X by itself, List knows to use the new position as 
> determined by the origin start (the offset value, +8), the entry number, and 
> entry length (512).  
> Richard
>
> --
> 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
/*-REXX--*/
/* IPCS CLIST TO ANALYSE A CICS REGION SVC DUMP AND DETERMINE THE*/
/* ADDRESS OF THE CSA (DFHCSA).  */
/*   */
/* INPUT:  NONE: IS INVOKED AS A COMMAND, FROM WITHIN IPCS, AND  */
/* ¯¯IT THEN ANALYSES THE DUMP CURRENTLY ALLOCATED   */
/*   */
/* OUTPUT: ADDRESS OF CICS TCB.  */
/* ¯¯¯""   "   GENERAL PURPOSE REGISTERS FROM TCB.   */
/*""   "   PRB, IF ANY.  */
/*""   "   GENERAL PURPOSE REGISTERS FROM ANY PRB.   */
/*""   "   IRB, IF ANY.  */
/*""   "   GENERAL PURPOSE REGISTERS FROM ANY IRB.   */
/*""   "   < ... OTHER RB'S, IF ANY ... >*/
/*""   "   DFHCSA.   */
/*   */
/* 06/01/95 CORRECTION TO ACTIVE/SUSPENDED TASK CHAINING */
/* 21/03/94 CMP: AMENDED TO OUTPUT ACTIVE + SUSPENDED TCA'S  */
/* 16/03/94 CHRIS PONCELET   */
/*---*/

ADDRESS IPCS

TRACE I
PSA_ADDRESS = ''
"EVALUATE" PSA_ADDRESS||. ,
  "POSITION("X2D(224)") LENGTH(4) REXX(STORAGE(OLD_ASCB_ADDRESS))"
"EVALUATE" OLD_ASCB_ADDRESS||. ,
  "POSITION("X2D(6C)") LENGTH(4) REXX(STORAGE(OLD_ASXB_ADDRESS))"
"EVALUATE" OLD_ASXB_ADDRESS||. ,
  "POSITION("X2D(4)") LENGTH(4) REXX(STORAGE(TCB_CHAIN_START_ADDRESS))"
"EVALUATE" OLD_ASXB_ADDRESS||. ,
  "POSITION("X2D(8)") LENGTH(4) REXX(STORAGE(TCB_CHAIN_STOP_ADDRESS))"

SAY ' '
FIND_CICS_TCB:
FOUND = 'NO'
STOP  = 'NO'
TCB_CHAIN_NEXT_ADDRESS = TCB_CHAIN_START_ADDRESS
X_E0 = C2X('E0'X)
X_00 = C2X('00'X)
X_40 = C2X('40'X)
X_60 = C2X('60'X)
X_80 = C2X('80'X)
X_C0 = C2X('C0'X)
DFHSIP = C2X('DFHSIP  ')

/* FOR EACH TCB, SEARCH FOR ALL RB'S */
DO WHILE (FOUND = 'NO') & (STOP = 'NO')
  IF TCB_CHAIN_NEXT_ADDRESS = TCB_CHAIN_STOP_ADDRESS THEN ,
STOP = 'YEAH'
  "EVALUATE" TCB_CHAIN_NEXT_ADDRESS||. ,
"POSITION(0) LENGTH(4) REXX(STORAGE(RB_ADDRESS))"

/* FOR EACH RB: FIND PRB, IF ANY, AND CHECK WHETHER ASSOCIATED   */
/*  PROGRAM IS DFHSIP*/
  PRB_ADDRESS  = 0
  IRB_ADDRESS  = 0
  TIRB_ADDRESS = 0
  SIRB_ADDRESS = 0
  SVRB_ADDRESS = 0
  DO K = 0 TO 999 WHILE (RB_ADDRESS ¬= TCB_CHAIN_NEXT_ADDRESS)
LINK_ADDRESS.K  = RB_ADDRESS
"EVALUATE" RB_ADDRESS||. ,
  "POSITION("X2D(0A)") LENGTH(1) REXX(STORAGE(RBSTAB1))"
RB_TYPE_VAL = C2X(BITAND(X2C(X_E0),X2C(RBSTAB1)))

SELECT;
  WHEN RB_TYPE_VAL = X_00  THEN DO   /* PRB  */
LINK_RB.K   = 'PRB'
"EVALUATE" RB_ADDRESS||. ,
  "POSITION("X2D(0C)") LENGTH(4) REXX(STORAGE(CDE_ADDRESS))"
"EVALUATE" 

Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-19 Thread Richard Pace
Hi Ben: Not sure if you're still looking...Here's my example. I had an array of 
512 size blocks that I wanted to display 6 bytes from offset +8 in each block 
(a volser). I positioned IPCS at the first block and tried this:

ipcs runarray address(+0) length(512) entries(1:10) exec((list X+8 length(6)))

This did not work. It listed the first control block repeatedly, similar to 
what you experienced I think.  On advice from IBM, I changed the command to 
this:

ipcs runarray address(+8) length(512) entries(1:10) exec((list X length(6)))

This worked -- setting the displacement value, +8,  in the address field, 
instead of trying to add to X.   I didn't really get an explanation from IBM; 
just "working as designed".  However, I suspect that inside the EXEC,  LIST X+n 
is treated different than LIST X; i.e. X only needs to be evaluated once for 
X+n, whereas X by itself, List knows to use the new position as determined by 
the origin start (the offset value, +8), the entry number, and entry length 
(512).  
Richard

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


Re: Trying to understand SMF30_RAXFLAGS

2022-04-19 Thread Charles Mills
IBM XL C/C++ library, the ffs (find first set [bit]) function. Not only does
it count from the LSb, it counts from one. So ffs(0x04) would return 3.

BTW and FWIW, the link garbling was at your end I think. My post survived
the round trip to my Outlook just fine except for folding/truncation.

Charles


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Seymour J Metz
Sent: Tuesday, April 19, 2022 9:51 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Trying to understand SMF30_RAXFLAGS

The GMU URL rewriter (we hates it precisous, we hates it!) garbled the URL:
what manual and what section?

Thanks.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of
Charles Mills [charl...@mcn.org]
Sent: Monday, April 18, 2022 7:09 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Trying to understand SMF30_RAXFLAGS

Except when they don't:

https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ibm.co
m%2Fdocs%2Fen%2Fzos%2F2.3.0%3Ftopic%3Dfunctions-ffs-find-first-set-bitd
ata=05%7C01%7Csmetz3%40gmu.edu%7C03d02dae3da64eb4b32e08da21909547%7C9e857255
df574c47a0c00546460380cb%7C0%7C0%7C637859202152362257%7CUnknown%7CTWFpbGZsb3
d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%
7C%7C%7Csdata=nGxEubdIHZEl02ScOTlQQAQ3ZvrZOw9caS1%2FCdD74N8%3Drese
rved=0
-in-integer

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


Re: Trying to understand SMF30_RAXFLAGS

2022-04-19 Thread Seymour J Metz
The GMU URL rewriter (we hates it precisous, we hates it!) garbled the URL: 
what manual and what section?

Thanks.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Charles Mills [charl...@mcn.org]
Sent: Monday, April 18, 2022 7:09 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Trying to understand SMF30_RAXFLAGS

Except when they don't:

https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ibm.com%2Fdocs%2Fen%2Fzos%2F2.3.0%3Ftopic%3Dfunctions-ffs-find-first-set-bitdata=05%7C01%7Csmetz3%40gmu.edu%7C03d02dae3da64eb4b32e08da21909547%7C9e857255df574c47a0c00546460380cb%7C0%7C0%7C637859202152362257%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7Csdata=nGxEubdIHZEl02ScOTlQQAQ3ZvrZOw9caS1%2FCdD74N8%3Dreserved=0
-in-integer

Charles


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Seymour J Metz
Sent: Monday, April 18, 2022 3:35 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Trying to understand SMF30_RAXFLAGS

No, IBM numbers bits from the left. In an 8-bit field, bit 0 corresponds to
a mask of '80'x and bit 7 to a maskm of '01'x.

--
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: Trying to understand SMF30_RAXFLAGS

2022-04-19 Thread Seymour J Metz
There have also been vendors who used 1-offset numbering. Sometimes 
manufacturers used different conventions for different product lines.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Charles Mills [charl...@mcn.org]
Sent: Monday, April 18, 2022 6:17 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Trying to understand SMF30_RAXFLAGS

You're right of course. Other systems count bits the other direction. You
can make an argument for either approach.

- 0 as the high bit corresponds to how we generally represent binary
integers, with the high order bit on the left.
- 0 as the low bit gives you consistency across 8, 16, 32 and 64 bit
operands, and makes the bit numbers correspond to powers of 2.

Charles


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Michael Oujesky
Sent: Monday, April 18, 2022 2:15 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Trying to understand SMF30_RAXFLAGS

My reading of Principals of Operation indicates register
documentation has bit 0 as the high order bit, not lower order bit.

--
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: SYSLOG port usage

2022-04-19 Thread Gord Tomlin

On 2022-04-19 03:16 AM, Tom Longfellow wrote:

I am still left with concerns from the 'sending' end of the syslog information. 
  The DS8884 is using TCP, not UDP.   There are no visible means of changing 
the communication packet type being used.
My only hope is that the -n version of the z/OS syslog daemon will listen on 
TCP port 514 (or even 1468) when started up.


The sample in prefix.SEZAINST(SYSLOGD) provides a clue that the syslogd 
only listens to UDP:


 BROWSETCPIP.SEZAINST(SYSLOGD)  Line 25 Col
 Command ===>  Scroll =
//*  If you would like to run two instances of syslogd, make a second *
//*  copy of this proc and replace -i with -n in the second instance. *
//*  The instance using -n will process only log messages received*
//*  over the well-known syslogd port via UDP. One instance must  *
//*  use -i and the other must use -n in order to run two instances.  *
//*   *
//*  The -c command-line option specifies that syslogd should create  *
//*  any log files or directories which do not already exist. *
//*   *
//*  The -i command-line option specifies that syslogd should not *
//*  process log messages sent to the well-known syslog port via UDP. *
//*

z/OS syslogd has no parameters for specifying the use of TCP or a 
non-standard port.


FWIW, a lot of sites are sending their syslog traffic to SIEM products; 
all such products that I've seen can accept TCP traffic.


--

--

Regards, Gord Tomlin
Action Software International
(a division of Mazda Computer Corporation)
Tel: (905) 470-7113, Fax: (905) 470-6507
Support: https://actionsoftware.com/support/

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


Re: I knew Cobol 6.3 takes more resources to compile than 4.2 but should I be concerned about how much?

2022-04-19 Thread Jantje.
On Mon, 18 Apr 2022 20:18:18 +, Pommier, Rex  
wrote:

>Hi list,
>
>Should I be concerned about the amount of resources Cobol 6.3 is occasionally 
>using as compared to 4.2?
No. But you have to cater for the requirements...


>  I have one particular example that was brought to our attention due to the 
> fact that we ran out of page space in our small shop.  I finally got it to 
> compile after tripling my page space.  It is a CICS program and is only 11270 
> lines long.  I am compiling with Expediter, but have optimization(0) 
> configured so there is no additional compile-time processing being done to 
> optimize the load module.   I removed Expediter and still had the issues.  
> Here are my comparisons.  Has anybody else seen this kind of huge increase?
>
Yes. Except that we are using maximum options for optimization. So, yes, you 
pay more for the compile, but that is compensated many times over at execution 
time. 
I have to recommend you do use optimization and that you carefully study the 
different compile options that drive optimization (OPT, TUNE, ARCH, ...). There 
is a lot (an I mean A LOT) of CPU consumption to be saved at execution time.

> 2 seconds to 23-31 minutes is insane.
>
Yes, but I think that is because of paging kicking in, I guess. Is there not 
more physical storage available so as to avoid paging?

Cheers,

Jantje.

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


Re: DB2: Combining result sets

2022-04-19 Thread Jantje.
On Mon, 18 Apr 2022 20:48:13 +0300, Binyamin Dissen 
 wrote:

>Seems that I have been knocked off of the DB2-L listserv.
>
Sorry to hear that... Maybe re-apply because the real SQL specialists live over 
there.


>I am doing a union of three queries where it is possible that the critical
>columns are in more than one of the queries.
>
>For example:
>
> select col1, col2 col3, 'source 1'
>  from table1
>  where something
> union
> select col1, col2, col3, 'source 2'
>   from table2
>  where something
> union
> select col1, col2, col3, 'source 3'
>from table3
>where something
>
>I would like a single row even if the data (col1, col2, col3) is in more than
>one of the queries, so that 'source1' is returned if in table1 and table2
>and/or table3, 'source 2' if not in table1 but in table2 (and perhaps table3)
>and 'source 3' if only in table 3.
>

To be tested:

select col1, col2, col3, min(source_tbl) as first_tbl
from (
  select col1, col2, col3, 'source 1' as source_tbl
   from table1
   where something
  union all
  select col1, col2, col3, 'source 2' as source_tbl
from table2
   where something
  union all
  select col1, col2, col3, 'source 3' as source_tbl
 from table3
 where something
 ) as cols
group by col1, col2, col3
;

This of course supposes that the source-table-identifying values you assign in 
the different sub queries have the values they have in your example.

Cheers,

Jantje.

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


Re: HS student with question about small mainframe DASD

2022-04-19 Thread Timothy Sipples
Shmuel Metz:
>As a point of curiosity, what are his licensing options if he decides
>to look at z/OS or z/VM?

I’ll answer in terms of standard commercial licensing (even though that’s not 
likely for hobbyist purposes). AFAIK there’s no special obstacle to *licensing* 
z/OS. z/OS Version 2 is IBM Program Number 5650-ZOS, and that program number 
applies to both z/OS 2.2 (the final release compatible with the IBM z114) and 
current z/OS 2.5. IBM’s licensing and billing systems don’t have a problem with 
that. The only unusual obstacle is delivery of z/OS 2.2 since that release is 
Withdrawn from Marketing. That’d be a special order, and as always it’s up to 
IBM to decide whether to fill it.

z/VM is *slightly* different since the IBM Program Number has changed between 
z/VM Version 6 and z/VM Version 7. However, my recollection is that it’s 
permissible to license Version X then run Version X-n as long as the license 
quantity is correct. Obviously please check that detail “with your friendly IBM 
representative.” And here too the unusual obstacle is delivery of z/VM 6.4.

z/OS is charged monthly, and z/VM is a “one-time charge” with optional annual 
Subscription & Support. Both z/OS and z/VM are eligible for sub-capacity 
licensing even with these older releases. For example, if you have an IBM z114 
with 3 CPs and 2 IFLs you could license z/VM for 1 CP and 1 IFL (2 engines) if 
you wish, provided you follow a few basic rules. In principle zNALC z/OS is 
available on this model, and if the z114 happens to be a capacity model A01 
then in principle ZELC is available. The z114 supports some popular nice 
features for licensing purposes such as LPAR group capacity limits (with 
softcapping) and zIIPs. It also supports z/VM type LPARs, meaning you can have 
a single LPAR running z/VM that spans CPs, IFLs, zIIPs, and zAAPs. (zAAPs were 
still available on this model.)

In short, the commercial licensing isn’t any harder than usual as far as I can 
tell. Actually *shipping* older releases is more interesting. Probably moot 
points for hobbyist purposes, but I’m answering the question you asked.

Enzo D'Amato wrote:
>Based on what I read in the z114 technical guide, I thought that unless the
>machine was running in an ensemble mode, the HMC just acted as a remote
>management console for the SEs. Does the HMC have extra features that the
>SEs don't?

Others could probably give you better insight, but the short answer is yes. In 
particular I think you’d face difficulties getting the machine started up with 
its first operating system (of any type) without the HMC. Whether those 
difficulties could be overcome...I’m not sure.

>I also have an IBM TS3200 tape library (one of the small 4U rack mount units)
>that I got broken and repaired. I'll have to see what kind of controller I 
>would
>need for it. I have seen some FICON switches that advertise having a tape 
>license,
>I wonder if this means that the controller unit is built in to the switch.

The IBM TS3200 tape library holds only LTO tape drives. They can be FC-attached 
to an IBM z114 (via a FC SAN switch), and then you can use the tape 
library/drives from Linux. The TS3200 and LTO drives aren’t FICON devices, and 
they weren’t/aren’t directly supported with other operating systems. However, 
you could still *indirectly* use these drives from other operating systems via 
Linux on IBM Z. For example, if you have FICON disk and another operating 
system (z/OS for example) you could dump/copy something to a 3390 volume, 
logically detach the volume, mount the volume on Linux with zdsfs, and then run 
your backup to tape.

>I'd really like to get my hands on z/TPF. All of the other major IBM OSes have
>either ADCD releases, or 24-bit predecessors that are open source, so you can
>get some experience playing around with them. z/TPF has nothing, and I have
>never even seen someone do a video, or write an article about it online. It
>seems like the ulitmate challenge for the mainframe hobbyist.

z/TPF would require ECKD (FICON) disk and some FICON-attached tape, too. That 
could be technically challenging, and it’s been a while since z/TPF officially 
(and probably technically) supported the IBM z114. So it’d be an older PUT 
level. Leaving aside availability questions, a possible technical alternative 
is IBM ALCS on z/OS. ALCS is highly functionally compatible with z/TPF but runs 
on z/OS.

>I am sorry, but I have never head this term before, and I could not find
>a definition online. Is there any way you could elaborate?

What I meant by “commercial z/VSE or VSEn service bureau” is z/VSE or VSEn 
hosting. Suppose some municipal government somewhere wants another development 
environment for their z/VSE applications. A hosting company could provide that 
service using a “slice” of their own mainframe, and then the city government 
accesses the LPAR or VM remotely. Standard commercial licensing terms would 
presumably apply in such cases. If someone can enter 

Re: SYSLOG port usage

2022-04-19 Thread Tom Longfellow
Thanks,   I am sure that will be part of my final resolution for this situation.

I am still left with concerns from the 'sending' end of the syslog information. 
  The DS8884 is using TCP, not UDP.   There are no visible means of changing 
the communication packet type being used.
My only hope is that the -n version of the z/OS syslog daemon will listen on 
TCP port 514 (or even 1468) when started up.

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