Re: IPCS - CBFORMAT
Thanks. Needless to say, this is not one of the best documented interfaces. Your help is valued. --Bill Bill Yeager, CTO Alebra Technologies, Inc. PO Box 120390 New Brighton, MN 55112 678-232-3270 This e-mail, including attachments, may include confidential and/or proprietary information and may be used only by the person or entity to which it is addressed. If the reader of this email is not the intended recipient, or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Jim Mulder Sent: Wednesday, January 24, 2024 11:49 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT You can make each model an entry point in the module, with an ALIAS for each one when you bind the module. Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Bill Yeager Sent: Wednesday, January 24, 2024 10:47 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT Jim, Just one more question, if you please... I'd like to put a bunch of CB mappings in one module if it's possible. The manual was totally unclear as to whether this is possible and, if so, how to do it. Do you know? Thanks, Bill Bill Yeager, CTO Alebra Technologies, Inc. PO Box 120390 New Brighton, MN 55112 678-232-3270 This e-mail, including attachments, may include confidential and/or proprietary information and may be used only by the person or entity to which it is addressed. If the reader of this email is not the intended recipient, or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Jim Mulder Sent: Tuesday, January 23, 2024 11:09 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT Try CBF 2B79E814. L(12) STRUCTURE(OPRM) The Truncated message is telling you that the OPRM model is trying to format something longer that what is provided. Since you only specified an address (not a symbol which has a length), the length would be defaulting to whatever your SETDEF command default length is (4, if you haven't changed it via the SETRDEF subcommand). You could also do things like EQ MYOPRM 2B79E814. L(12) STR(OPRM) CBF MYOPRM For your other thing that does work, if it is longer than 4 bytes, maybe IPCS knows something else about it which determines a length. IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session. The LISTMAP subcommand will also tell you about things that IPCS has already figured out and put into its storage map. What is the structure name that does work? Where does it show up in the output of IPCSDATA ACTIVE ? Does the structure name show up in the output of LISTMAP, or is the address in an a range that shows as being mapped in the output of LISTMAP? Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Jon Perryman Sent: Tuesday, January 23, 2024 9:47 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT This looks correct and essentially the same as mine. I never ran into the truncated error. I'm guessing the problem must lie somewhere else. Since ACRONYM= is working, it's unlikely that a spurious blank is causing the problem. Maybe compare the assembler listings to see if there is a difference. I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate problems associated with linklst. I don't think this is your problem.. I would look at the link listing and verify the entry point and module name is correct. I don't think this is the problem because HEADER= is working correctly. Although you didn't include the full source, It appears the CSECT is setup correctly and nothing spurious seems to be included but maybe you can check the listing for something unexpected. I don't think using CBLEN=20 will fix the problem but you could try it. Sorry I can't be of help but your problem doesn't appear to be with the definitions. On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager wrote: >OPRM DSECT >OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120 >OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED >OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED > > BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM, X >
Re: IPCS - CBFORMAT
You can make each model an entry point in the module, with an ALIAS for each one when you bind the module. Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Bill Yeager Sent: Wednesday, January 24, 2024 10:47 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT Jim, Just one more question, if you please... I'd like to put a bunch of CB mappings in one module if it's possible. The manual was totally unclear as to whether this is possible and, if so, how to do it. Do you know? Thanks, Bill Bill Yeager, CTO Alebra Technologies, Inc. PO Box 120390 New Brighton, MN 55112 678-232-3270 This e-mail, including attachments, may include confidential and/or proprietary information and may be used only by the person or entity to which it is addressed. If the reader of this email is not the intended recipient, or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Jim Mulder Sent: Tuesday, January 23, 2024 11:09 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT Try CBF 2B79E814. L(12) STRUCTURE(OPRM) The Truncated message is telling you that the OPRM model is trying to format something longer that what is provided. Since you only specified an address (not a symbol which has a length), the length would be defaulting to whatever your SETDEF command default length is (4, if you haven't changed it via the SETRDEF subcommand). You could also do things like EQ MYOPRM 2B79E814. L(12) STR(OPRM) CBF MYOPRM For your other thing that does work, if it is longer than 4 bytes, maybe IPCS knows something else about it which determines a length. IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session. The LISTMAP subcommand will also tell you about things that IPCS has already figured out and put into its storage map. What is the structure name that does work? Where does it show up in the output of IPCSDATA ACTIVE ? Does the structure name show up in the output of LISTMAP, or is the address in an a range that shows as being mapped in the output of LISTMAP? Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Jon Perryman Sent: Tuesday, January 23, 2024 9:47 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT This looks correct and essentially the same as mine. I never ran into the truncated error. I'm guessing the problem must lie somewhere else. Since ACRONYM= is working, it's unlikely that a spurious blank is causing the problem. Maybe compare the assembler listings to see if there is a difference. I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate problems associated with linklst. I don't think this is your problem.. I would look at the link listing and verify the entry point and module name is correct. I don't think this is the problem because HEADER= is working correctly. Although you didn't include the full source, It appears the CSECT is setup correctly and nothing spurious seems to be included but maybe you can check the listing for something unexpected. I don't think using CBLEN=20 will fix the problem but you could try it. Sorry I can't be of help but your problem doesn't appear to be with the definitions. On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager wrote: >OPRM DSECT >OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120 >OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED >OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED > > BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM, X > ACRONYM=OPRM,ACROLBL=OPRMEYEC > BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC > BLSQMDEF END > >2B79E814 D6D7D9D4 E6D9E3C5 D9D9C5D8 | OPRMWRTERREQ | >2B79E820 E6D9E3C5 D9C5C1C4 | WRTEREAD | > >Command: CBF 2B79E814. STRUCTURE(OPRM) > >OPRM: 2B79E814 > + EYEC. OPRM >Control block is truncated > >-- >For IBM-MAIN subscribe / signoff / archive access instructions, send >email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- Fo
Re: IPCS - CBFORMAT
Jim, Just one more question, if you please... I'd like to put a bunch of CB mappings in one module if it's possible. The manual was totally unclear as to whether this is possible and, if so, how to do it. Do you know? Thanks, Bill Bill Yeager, CTO Alebra Technologies, Inc. PO Box 120390 New Brighton, MN 55112 678-232-3270 This e-mail, including attachments, may include confidential and/or proprietary information and may be used only by the person or entity to which it is addressed. If the reader of this email is not the intended recipient, or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Jim Mulder Sent: Tuesday, January 23, 2024 11:09 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT Try CBF 2B79E814. L(12) STRUCTURE(OPRM) The Truncated message is telling you that the OPRM model is trying to format something longer that what is provided. Since you only specified an address (not a symbol which has a length), the length would be defaulting to whatever your SETDEF command default length is (4, if you haven't changed it via the SETRDEF subcommand). You could also do things like EQ MYOPRM 2B79E814. L(12) STR(OPRM) CBF MYOPRM For your other thing that does work, if it is longer than 4 bytes, maybe IPCS knows something else about it which determines a length. IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session. The LISTMAP subcommand will also tell you about things that IPCS has already figured out and put into its storage map. What is the structure name that does work? Where does it show up in the output of IPCSDATA ACTIVE ? Does the structure name show up in the output of LISTMAP, or is the address in an a range that shows as being mapped in the output of LISTMAP? Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Jon Perryman Sent: Tuesday, January 23, 2024 9:47 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT This looks correct and essentially the same as mine. I never ran into the truncated error. I'm guessing the problem must lie somewhere else. Since ACRONYM= is working, it's unlikely that a spurious blank is causing the problem. Maybe compare the assembler listings to see if there is a difference. I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate problems associated with linklst. I don't think this is your problem.. I would look at the link listing and verify the entry point and module name is correct. I don't think this is the problem because HEADER= is working correctly. Although you didn't include the full source, It appears the CSECT is setup correctly and nothing spurious seems to be included but maybe you can check the listing for something unexpected. I don't think using CBLEN=20 will fix the problem but you could try it. Sorry I can't be of help but your problem doesn't appear to be with the definitions. On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager wrote: >OPRM DSECT >OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120 >OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED >OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED > > BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM, X > ACRONYM=OPRM,ACROLBL=OPRMEYEC > BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC > BLSQMDEF END > >2B79E814 D6D7D9D4 E6D9E3C5 D9D9C5D8 | OPRMWRTERREQ | >2B79E820 E6D9E3C5 D9C5C1C4 | WRTEREAD | > >Command: CBF 2B79E814. STRUCTURE(OPRM) > >OPRM: 2B79E814 > + EYEC. OPRM >Control block is truncated > >-- >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 -- For IBM-MAIN subscribe / signoff / archive access instructions
Re: IPCS - CBFORMAT
Jim, You nailed it with the LISTMAP. Once I had gotten an error with this control block (earlier), IPCS had set the length to 4 and remembered it. I used "DROPMAP structure(oprm)" and then rand the CBF again it worked! Thanks so much. Bill Yeager, CTO Alebra Technologies, Inc. PO Box 120390 New Brighton, MN 55112 678-232-3270 This e-mail, including attachments, may include confidential and/or proprietary information and may be used only by the person or entity to which it is addressed. If the reader of this email is not the intended recipient, or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Jim Mulder Sent: Tuesday, January 23, 2024 11:09 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT Try CBF 2B79E814. L(12) STRUCTURE(OPRM) The Truncated message is telling you that the OPRM model is trying to format something longer that what is provided. Since you only specified an address (not a symbol which has a length), the length would be defaulting to whatever your SETDEF command default length is (4, if you haven't changed it via the SETRDEF subcommand). You could also do things like EQ MYOPRM 2B79E814. L(12) STR(OPRM) CBF MYOPRM For your other thing that does work, if it is longer than 4 bytes, maybe IPCS knows something else about it which determines a length. IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session. The LISTMAP subcommand will also tell you about things that IPCS has already figured out and put into its storage map. What is the structure name that does work? Where does it show up in the output of IPCSDATA ACTIVE ? Does the structure name show up in the output of LISTMAP, or is the address in an a range that shows as being mapped in the output of LISTMAP? Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Jon Perryman Sent: Tuesday, January 23, 2024 9:47 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT This looks correct and essentially the same as mine. I never ran into the truncated error. I'm guessing the problem must lie somewhere else. Since ACRONYM= is working, it's unlikely that a spurious blank is causing the problem. Maybe compare the assembler listings to see if there is a difference. I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate problems associated with linklst. I don't think this is your problem.. I would look at the link listing and verify the entry point and module name is correct. I don't think this is the problem because HEADER= is working correctly. Although you didn't include the full source, It appears the CSECT is setup correctly and nothing spurious seems to be included but maybe you can check the listing for something unexpected. I don't think using CBLEN=20 will fix the problem but you could try it. Sorry I can't be of help but your problem doesn't appear to be with the definitions. On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager wrote: >OPRM DSECT >OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120 >OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED >OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED > > BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM, X > ACRONYM=OPRM,ACROLBL=OPRMEYEC > BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC > BLSQMDEF END > >2B79E814 D6D7D9D4 E6D9E3C5 D9D9C5D8 | OPRMWRTERREQ | >2B79E820 E6D9E3C5 D9C5C1C4 | WRTEREAD | > >Command: CBF 2B79E814. STRUCTURE(OPRM) > >OPRM: 2B79E814 > + EYEC. OPRM >Control block is truncated > >-- >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 -- For IBM-MAIN subscribe / signoff / archive access in
Re: IPCS - CBFORMAT
Try CBF 2B79E814. L(12) STRUCTURE(OPRM) The Truncated message is telling you that the OPRM model is trying to format something longer that what is provided. Since you only specified an address (not a symbol which has a length), the length would be defaulting to whatever your SETDEF command default length is (4, if you haven't changed it via the SETRDEF subcommand). You could also do things like EQ MYOPRM 2B79E814. L(12) STR(OPRM) CBF MYOPRM For your other thing that does work, if it is longer than 4 bytes, maybe IPCS knows something else about it which determines a length. IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session. The LISTMAP subcommand will also tell you about things that IPCS has already figured out and put into its storage map. What is the structure name that does work? Where does it show up in the output of IPCSDATA ACTIVE ? Does the structure name show up in the output of LISTMAP, or is the address in an a range that shows as being mapped in the output of LISTMAP? Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Jon Perryman Sent: Tuesday, January 23, 2024 9:47 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - CBFORMAT This looks correct and essentially the same as mine. I never ran into the truncated error. I'm guessing the problem must lie somewhere else. Since ACRONYM= is working, it's unlikely that a spurious blank is causing the problem. Maybe compare the assembler listings to see if there is a difference. I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate problems associated with linklst. I don't think this is your problem.. I would look at the link listing and verify the entry point and module name is correct. I don't think this is the problem because HEADER= is working correctly. Although you didn't include the full source, It appears the CSECT is setup correctly and nothing spurious seems to be included but maybe you can check the listing for something unexpected. I don't think using CBLEN=20 will fix the problem but you could try it. Sorry I can't be of help but your problem doesn't appear to be with the definitions. On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager wrote: >OPRM DSECT >OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120 >OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED >OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED > > BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM, X > ACRONYM=OPRM,ACROLBL=OPRMEYEC > BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC > BLSQMDEF END > >2B79E814 D6D7D9D4 E6D9E3C5 D9D9C5D8 | OPRMWRTERREQ | >2B79E820 E6D9E3C5 D9C5C1C4 | WRTEREAD | > >Command: CBF 2B79E814. STRUCTURE(OPRM) > >OPRM: 2B79E814 > + EYEC. OPRM >Control block is truncated > >-- >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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS - CBFORMAT
This looks correct and essentially the same as mine. I never ran into the truncated error. I'm guessing the problem must lie somewhere else. Since ACRONYM= is working, it's unlikely that a spurious blank is causing the problem. Maybe compare the assembler listings to see if there is a difference. I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate problems associated with linklst. I don't think this is your problem.. I would look at the link listing and verify the entry point and module name is correct. I don't think this is the problem because HEADER= is working correctly. Although you didn't include the full source, It appears the CSECT is setup correctly and nothing spurious seems to be included but maybe you can check the listing for something unexpected. I don't think using CBLEN=20 will fix the problem but you could try it. Sorry I can't be of help but your problem doesn't appear to be with the definitions. On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager wrote: >OPRM DSECT >OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120 >OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED >OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED > > BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM, X > ACRONYM=OPRM,ACROLBL=OPRMEYEC > BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC > BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC > BLSQMDEF END > >2B79E814 D6D7D9D4 E6D9E3C5 D9D9C5D8 | OPRMWRTERREQ | >2B79E820 E6D9E3C5 D9C5C1C4 | WRTEREAD | > >Command: CBF 2B79E814. STRUCTURE(OPRM) > >OPRM: 2B79E814 > + EYEC. OPRM >Control block is truncated > >-- >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: IPCS - CBFORMAT
OPRM DSECT OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120 OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM, X ACRONYM=OPRM,ACROLBL=OPRMEYEC BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC BLSQMDEF END 2B79E814 D6D7D9D4 E6D9E3C5 D9D9C5D8 | OPRMWRTERREQ | 2B79E820 E6D9E3C5 D9C5C1C4 | WRTEREAD | Command: CBF 2B79E814. STRUCTURE(OPRM) OPRM: 2B79E814 + EYEC. OPRM Control block is truncated -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS - CBFORMAT
On Tue, 23 Jan 2024 13:11:27 -0600, Bill Yeager wrote: > I get “Control block is truncated” TSO PROFILE MSGID will turn on message ID. You can then look up the message to find the causes and solutions for this message. You can TSO PROFILE NOMSGID to eliminate message ids from TSO. I personally leave it on because message id's can be useful. Use IP LIST xxx LEN(##) to display the area and verify the full area actually exists. Verify the acronym matches and (I think) it has trailing blanks instead of X'00'. Look at the fields with formatting and ensure they are compatible with the formatting. If the problem is not something obvious, then include the definition and storage here so that we aren't guessing. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
IPCS - CBFORMAT
Using a control block model with IPCS, I’m stuck in a situation whereby I get “Control block is truncated” no matter what I do when I issue a CBFORMAT for the structure (CBF addr. Structure(cbname). It displays the eyecatcher (acronym) and that is all. I mapped 2 control blocks, one works the other doesn’t and they are almost identical. 1) They both are single CSECTs in separate load modules. Load modules and CSECTS for each have the same names. 2) They both are defined in a BLSCUSER parmlib member as “DATA STRUCTURE(cbname) MODEL(loadmod name)” 3) They both have the same keywords specified on the BLSQMDEF statement (BASELBL, CBLEN, PREFIX, HEADER, ACRONYM, and ACROLBL) 4) The only keywords specified on the BLSQMFLD statements are NAME and optionally DTYPE. 5) They both map the entire CB with the total length of the fields adding up to the value on CBLEN. 6) The load modules are both in USER.LINKLIB which is in LLA and I issue a MODIFY LLA,REFRESH whenever they are changed. Any help to get me unstuck would be appreciated. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: unable to access IPCS 64 bit storage using Storage map service
Changing the length to =AD(100) did it thanks Adam > On Nov 13, 2023, at 1:04 PM, Joseph Reichman wrote: > > I’m using test to debug this thanks > >>> On Nov 13, 2023, at 11:28 AM, Adam Johanson >>> <031ca9d720a7-dmarc-requ...@listserv.ua.edu> wrote: >>> >>> Joe wrote: >>> I got a number of responses but I decided to use the post By Adam Johanson >>> using storage map services below is my code >> >> It appears that I am now pot-committed to this thread, so here goes. >> >> >> John P. wrote: >>> My suggestion would be to start from a function use of ADPLSACC which can >>> be found at https://planetmvs.com/ipcs/ivxSName.txt >> >>> Once you verify it's functioning correctly, start modifying it to access 64 >>> bit storage. Without a source listing, it's hard to tell if everything is >>> initialized correctly. >> >> ADPLSACC doesn't appear to work for accessing 64-bit storage, or at least I >> couldn't see how to get it to work. This is the reason I went with the >> Storage Map service and gave it as an example. >> >> >> Joe, in your excerpts, these lines pop out: >> >>>MVC MAPAST,VIRTUAL#STORAGE Virtual storage address space >>>MVC MAPAS2+2(2),ASID# >> >> It's not clear what VIRTUAL#STORAGE is, but following the example, MAPAST >> needs to be set to the ZZZASTCV EQUate for CPU/ASID type. Always better to >> use the provided EQUates. >> >> Also, you're moving the ASID# into MAPAS2+2 and it's not clear that the >> first 2 bytes of MAPAS2 have been initialized to zeroes (I assume that it >> matters). The code doesn't explicitly initialize them, and the area doesn't >> appear to be populated by an "initialized" BLSRSASY area. I would suggest >> having an initialized BLSRSASY area in the constant-area of your program and >> copy this into your WORKAREA copy. Doing this sets several fields for you >> that you don't have to explicitly set yourself, chief among them being the >> ABITS=64 business. >> >> And this line: >> >>> MVC MAPFLE,=A(100) >> >> MAPFLE is 8 bytes. >> >> There might be other problems in this sample, but these are the initial >> ones I see. It might be good to either use a debugger or get a dump at the >> time of your ADPLSERV invocation and make sure that the areas that you're >> passing line up with what they're supposed to look like, using the >> expansions in the listing. >> >> === >> Adam Johanson >> Broadcom Mainframe Software Division >> >> -- >> 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: unable to access IPCS 64 bit storage using Storage map service
I’m using test to debug this thanks > On Nov 13, 2023, at 11:28 AM, Adam Johanson > <031ca9d720a7-dmarc-requ...@listserv.ua.edu> wrote: > > Joe wrote: >> I got a number of responses but I decided to use the post By Adam Johanson >> using storage map services below is my code > > It appears that I am now pot-committed to this thread, so here goes. > > > John P. wrote: >> My suggestion would be to start from a function use of ADPLSACC which can be >> found at https://planetmvs.com/ipcs/ivxSName.txt > >> Once you verify it's functioning correctly, start modifying it to access 64 >> bit storage. Without a source listing, it's hard to tell if everything is >> initialized correctly. > > ADPLSACC doesn't appear to work for accessing 64-bit storage, or at least I > couldn't see how to get it to work. This is the reason I went with the > Storage Map service and gave it as an example. > > > Joe, in your excerpts, these lines pop out: > >> MVC MAPAST,VIRTUAL#STORAGE Virtual storage address space >> MVC MAPAS2+2(2),ASID# > > It's not clear what VIRTUAL#STORAGE is, but following the example, MAPAST > needs to be set to the ZZZASTCV EQUate for CPU/ASID type. Always better to > use the provided EQUates. > > Also, you're moving the ASID# into MAPAS2+2 and it's not clear that the first > 2 bytes of MAPAS2 have been initialized to zeroes (I assume that it matters). > The code doesn't explicitly initialize them, and the area doesn't appear to > be populated by an "initialized" BLSRSASY area. I would suggest having an > initialized BLSRSASY area in the constant-area of your program and copy this > into your WORKAREA copy. Doing this sets several fields for you that you > don't have to explicitly set yourself, chief among them being the ABITS=64 > business. > > And this line: > >> MVC MAPFLE,=A(100) > > MAPFLE is 8 bytes. > > There might be other problems in this sample, but these are the initial > ones I see. It might be good to either use a debugger or get a dump at the > time of your ADPLSERV invocation and make sure that the areas that you're > passing line up with what they're supposed to look like, using the expansions > in the listing. > > === > Adam Johanson > Broadcom Mainframe Software Division > > -- > 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: unable to access IPCS 64 bit storage using Storage map service
Joe wrote: > I got a number of responses but I decided to use the post By Adam Johanson > using storage map services below is my code It appears that I am now pot-committed to this thread, so here goes. John P. wrote: > My suggestion would be to start from a function use of ADPLSACC which can be > found at https://planetmvs.com/ipcs/ivxSName.txt > Once you verify it's functioning correctly, start modifying it to access 64 > bit storage. Without a source listing, it's hard to tell if everything is > initialized correctly. ADPLSACC doesn't appear to work for accessing 64-bit storage, or at least I couldn't see how to get it to work. This is the reason I went with the Storage Map service and gave it as an example. Joe, in your excerpts, these lines pop out: > MVC MAPAST,VIRTUAL#STORAGE Virtual storage address space > MVC MAPAS2+2(2),ASID# It's not clear what VIRTUAL#STORAGE is, but following the example, MAPAST needs to be set to the ZZZASTCV EQUate for CPU/ASID type. Always better to use the provided EQUates. Also, you're moving the ASID# into MAPAS2+2 and it's not clear that the first 2 bytes of MAPAS2 have been initialized to zeroes (I assume that it matters). The code doesn't explicitly initialize them, and the area doesn't appear to be populated by an "initialized" BLSRSASY area. I would suggest having an initialized BLSRSASY area in the constant-area of your program and copy this into your WORKAREA copy. Doing this sets several fields for you that you don't have to explicitly set yourself, chief among them being the ABITS=64 business. And this line: > MVC MAPFLE,=A(100) MAPFLE is 8 bytes. There might be other problems in this sample, but these are the initial ones I see. It might be good to either use a debugger or get a dump at the time of your ADPLSERV invocation and make sure that the areas that you're passing line up with what they're supposed to look like, using the expansions in the listing. === Adam Johanson Broadcom Mainframe Software Division -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: unable to access IPCS 64 bit storage using Storage map service
Joe Reichman On Mon, Nov 13, 2023 at 2:56 AM Joseph Reichman wrote: > > Joe Reichman > > > On Mon, Nov 13, 2023 at 2:55 AM Jon Perryman wrote: > >> On Sat, 11 Nov 2023 21:34:57 -0500, Joseph Reichman < >> reichman...@gmail.com> wrote: >> >> >In IPCS I did a list subcommand from the value of double word value in >> >TSTAUVCT and it had the values I was expecting however using storage map >> >services I get zeros in the area pointed to by XMSPBUF >> >> My suggestion would be to start from a function use of ADPLSACC which can >> be found at https://planetmvs.com/ipcs/ivxSName.txt >> >> Once you verify it's functioning correctly, start modifying it to access >> 64 bit storage. Without a source listing, it's hard to tell if everything >> is initialized correctly. >> >> -- >> 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: unable to access IPCS 64 bit storage using Storage map service
Joe Reichman On Mon, Nov 13, 2023 at 2:55 AM Jon Perryman wrote: > On Sat, 11 Nov 2023 21:34:57 -0500, Joseph Reichman > wrote: > > >In IPCS I did a list subcommand from the value of double word value in > >TSTAUVCT and it had the values I was expecting however using storage map > >services I get zeros in the area pointed to by XMSPBUF > > My suggestion would be to start from a function use of ADPLSACC which can > be found at https://planetmvs.com/ipcs/ivxSName.txt > > Once you verify it's functioning correctly, start modifying it to access > 64 bit storage. Without a source listing, it's hard to tell if everything > is initialized correctly. > > -- > 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: unable to access IPCS 64 bit storage using Storage map service
On Sat, 11 Nov 2023 21:34:57 -0500, Joseph Reichman wrote: >In IPCS I did a list subcommand from the value of double word value in >TSTAUVCT and it had the values I was expecting however using storage map >services I get zeros in the area pointed to by XMSPBUF My suggestion would be to start from a function use of ADPLSACC which can be found at https://planetmvs.com/ipcs/ivxSName.txt Once you verify it's functioning correctly, start modifying it to access 64 bit storage. Without a source listing, it's hard to tell if everything is initialized correctly. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
unable to access IPCS 64 bit storage using Storage map service
A while I posted about accessing ipcs storage above the bar 64 bit as with storage access I could only get 31 bit I got a number of responses but I decided to use the post By Adam Johanson using storage map services below is my code I get a rc zero in r15 however storage area address XMSPBUFF contains all zeros In IPCS I did a list subcommand from the value of double word value in TSTAUVCT and it had the values I was expecting however using storage map services I get zeros in the area pointed to by XMSPBUF * LAR7,WORKMAP USING MAP,R7 LAR10,WRKMPL USING XMSP,R10 MVC MAPRID,=C'SA' MVC XMSPMODN,=C'TSTAIPCS' STR7,XMSPSAR MVC XMSPCODE,=Y(XMSPACC) MVC XMSPIDC,=C'XMSP' MVI XMSPIDL,C'1' MVC MAPAST,VIRTUAL#STORAGE Virtual storage address space MVC MAPAS2+2(2),ASID# *MVC MAPDTD(30),=31C' ' *MVI MAPDTE,C' ' MVC MAPAS1,=F'-1' MVC MAPLAD,TSTAUVCT MVI MAPDTY,ZZZDTYU MVC MAPFLE,=A(100) OIXMSPPFL1,XMSPV64 LAR0,1000 STORAGE OBTAIN,LENGTH=(0),ADDR=(R5),SP=0 STR5,XMSPBUF L 15,ADPLSERV CALL (15),((R8),MAP#SERVICE,(R10)),MF=(E,CALLLST) * PPR2 BLSUPPR2 DSECT=NO IPCS expanded print parm list XMSP BLSRXMSP DSECT=YES XMSPLEN EQU *-XMSP MAP BLSRSASY DSECT=YES,ABITS=64 WORKAREA DSECT DSXL144 *EGSAVE DSXL144 WORKPACC DS 0D,CL(ADPLLACC) WORKPPR2 DS 0D,CL(PPR2999-PPR2000) WORKESSY DS 0D,CL(ESSYHRL) WORKMAP DS 0D,CL(MAPHRL) WRKMPL DS 0D,CL(XMSPLEN) SNAMHXSV DS CL8 SNAMSAVE DS CL8 SNAMHXLN DS F CALLLST CALL ,(,,),MF=L -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS verb to format the pending RESMGR requests
On Sun, 5 Nov 2023 14:44:06 +0200, Binyamin Dissen wrote: >For example, it appears that ASSBRMA is pointing to the address space level >blocks, but It isn't obvious to me what the block looks like. Since no one has given you anything about RESMGR (and IPCS formatting), here's my perspective from my use of it years ago. The primary functionality of RESMGR at that time was to invoke our product RESMGR routine at address space & task termination. If there is any RESMGR IPCS formatting, it will most likely be with the RTM formatting. I wouldn't expect much in terms of RESMGR IPCS formatting. There may be some CB formatting routines but you would need to chase down the chains. Remember that IPCS is more focused on abends and svc dumps which RESMGR information is not useful even when your RESMGR abends. They typically are not related. You asked specifically about "pending" RESMGR's but I doubt that is your goal? It would require a dump be taken specifically when a TCB is running a RESMGR routine or you locate all TCBs executing a RESMGR routine in the dump. Depending on how IBM designed RESMGR, it might be difficult to determine RESMGR chain logic. We assume they have ASCB, TCB and system RESMGR chains but maybe there's more or not simple chains. I assume there will be an RTM2WA for an executing RESMGR because it's part of RTM which has relevant information. RESMGRs aren't difficult to write especially if they do nothing but return. You could easily add multiple RESMGRs for a single task and then terminate the task to cause them to run while taking a dump during on first. Maybe running the savearea chain to see the CBs that are referenced (e.g. RTM2WA, a CB eyecatcher or possibly the chain from which it came. You mentioned ASSBRMA and assume it points to an RMA. I would verify this in a dump because it would not be the first time the pointer name does not match the CB eyecatcher. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
IPCS verb to format the pending RESMGR requests
For example, it appears that ASSBRMA is pointing to the address space level blocks, but It isn't obvious to me what the block looks like. No real luck finding the mappings. -- 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
AW: [IBM-MAIN] IPCS beginners primer WAS: IPCS and Rexx
Another tip: If, like me, you are really bad at memorizing the IPCS command syntax, you can write a small REXX which uses "address IPCS" to run all those commands which you found useful. If you redirect the output into a PO dataset (one member per command) you can then look through these reports to analyze what's going on. -Ursprüngliche Nachricht- Von: IBM Mainframe Discussion List Im Auftrag von Jon Perryman Gesendet: Dienstag, 17. Oktober 2023 04:30 An: IBM-MAIN@LISTSERV.UA.EDU Betreff: [IBM-MAIN] IPCS beginners primer WAS: IPCS and Rexx On Fri, 13 Oct 2023 22:57:18 -0500, Bruce Hewson wrote: >A replacement STORAGE function for use in IPCS:- For IPCS beginners, I strongly encourage learning a few basics IPCS subcommands before taking code from others or writing IPCS REXX / IPCS exits. The large number of IPCS subcommands and many args is confusing / overwhelming. It's all extremely useful but you can live without them in the beginning. There are many solutions to every problem and if the solution solves your problem, then it's a good solution. Thiw STORAGE function works but it has some limitations that should be corrected before providing for public use. For instance, an additional solution or extra coding is needed to STORAGE("X", 100). . For IPCS beginners, here are my essentials suggestion for starting. * ISPF IPCS option 6 (IPCS commands) has a more flexible "IP " that is used from command lines which also stacks displays. For instance, IP CBFORMAT 0 STR(PSA) formats the PSA. Find CVT and issue IP CBFORMAT ### STR(CVT) without exiting the first screen. * Practice using offsets and pointers. E.g. IP LIST 0+32?+40?+80?-16?+20+16*30? LEN(300) ? is 4 byte pointer versus % is 3 byte pointer * Caution when using PF8 "M". IPCS pauses at each full screen. Scroll to the end can take minutes formatting data you never look at. * Learn to notice hex / decimal number problems: IP L 10 IP L X'10'IP L 10.IP L 10+10IP L 10+x'10' * Practice snooping around control blocks using CBFORMAT. For instance, start with IP CBF 0 STR(PSA). From there PSAAOLD =>ASCBASXB =>ASXBFTCB => TCBTCB. . *Practice the same using offsets. Notice for instance the left of each line from IP CBF 0 STR(PSA) has the offset for the first field. Recall the command and insert +##? and change the STR(). Repeat for additional control blocks. * Practice using IP LIST 0 len(500) to look at some storage. I think it displays the subpool too. * Practice using EQUATE. E.g. IP EQUATE PSA 0 STR(PSA) and use IP CBF PSA and IP LIST PSA. Save a symbol for example IP EQUATE SAVE_PSA PSA. * Practice understanding period. IP L F0. IP L F0 IP L 0. IP L 0 At this point, you should have enough to write some REXX and IPCS assembler exits. * REXX ADDRESS IPCS commands sent to IPCS instead of TSO * REXX EVALUATE "EVAL 20. LEN(512) REXX(STORAGE(varname))" fills variable varname with 512 bytes starting at x'20'. 512 is the limit. * REXX attention routine should be written ensuring you don't get stuck in a loop. -- 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
IPCS beginners primer WAS: IPCS and Rexx
On Fri, 13 Oct 2023 22:57:18 -0500, Bruce Hewson wrote: >A replacement STORAGE function for use in IPCS:- For IPCS beginners, I strongly encourage learning a few basics IPCS subcommands before taking code from others or writing IPCS REXX / IPCS exits. The large number of IPCS subcommands and many args is confusing / overwhelming. It's all extremely useful but you can live without them in the beginning. There are many solutions to every problem and if the solution solves your problem, then it's a good solution. Thiw STORAGE function works but it has some limitations that should be corrected before providing for public use. For instance, an additional solution or extra coding is needed to STORAGE("X", 100). . For IPCS beginners, here are my essentials suggestion for starting. * ISPF IPCS option 6 (IPCS commands) has a more flexible "IP " that is used from command lines which also stacks displays. For instance, IP CBFORMAT 0 STR(PSA) formats the PSA. Find CVT and issue IP CBFORMAT ### STR(CVT) without exiting the first screen. * Practice using offsets and pointers. E.g. IP LIST 0+32?+40?+80?-16?+20+16*30? LEN(300) ? is 4 byte pointer versus % is 3 byte pointer * Caution when using PF8 "M". IPCS pauses at each full screen. Scroll to the end can take minutes formatting data you never look at. * Learn to notice hex / decimal number problems: IP L 10 IP L X'10'IP L 10.IP L 10+10IP L 10+x'10' * Practice snooping around control blocks using CBFORMAT. For instance, start with IP CBF 0 STR(PSA). From there PSAAOLD =>ASCBASXB =>ASXBFTCB => TCBTCB. . *Practice the same using offsets. Notice for instance the left of each line from IP CBF 0 STR(PSA) has the offset for the first field. Recall the command and insert +##? and change the STR(). Repeat for additional control blocks. * Practice using IP LIST 0 len(500) to look at some storage. I think it displays the subpool too. * Practice using EQUATE. E.g. IP EQUATE PSA 0 STR(PSA) and use IP CBF PSA and IP LIST PSA. Save a symbol for example IP EQUATE SAVE_PSA PSA. * Practice understanding period. IP L F0. IP L F0 IP L 0. IP L 0 At this point, you should have enough to write some REXX and IPCS assembler exits. * REXX ADDRESS IPCS commands sent to IPCS instead of TSO * REXX EVALUATE "EVAL 20. LEN(512) REXX(STORAGE(varname))" fills variable varname with 512 bytes starting at x'20'. 512 is the limit. * REXX attention routine should be written ensuring you don't get stuck in a loop. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
A replacement STORAGE function for use in IPCS:- Storage: Procedure Expose storage. arg hex_address , dec_length , rep_data hex_address = Right(hex_address,8,'0') hex_address = X2c(hex_address) hex_address = Bitand(hex_address,'7FFF'x) hex_address = C2x(hex_address) hex_data = Obtain_Data( hex_address , 0 , dec_length ) Return X2c(hex_data) /*---*/ /* */ Obtain_Data: Procedure Expose storage. /*---*/ /* */ /* Function: Obtain_Data */ /* */ /* Retrieve data from the dump. Invoke the IPCS */ /* EVALUATE subcommand as necessary to access*/ /* 512-byte blocks of data from the IPCS dump*/ /* source and store the data in variable */ /* "storage." Callers of Obtain_Data must */ /* request storage from the same address space. */ /* (currect SETDEF-defined address space default)*/ /* */ /* Input: Description of data to access:*/ /* */ /* Hex address of data. */ /* Decimal position from the hex address of the */ /* first byte to access. */ /* Decimal length of the data to access. */ /* */ /* Output: Requested data is returned. */ /* */ /*---*/ arg hex_address , dec_position , dec_length Address IPCS /* Ensure IPCS environment */ trace 'o' /* Suppress display of unsuccessful */ /* storage fetches once PF3 has been */ /* hit. */ Numeric Digits 16 x = '' /* initialize X variable */ ipcs_eval_limit = 512 /* The maximum numbe of bytes that */ /* the IPCS EVALUATE subcommand can */ /* access per invocation.*/ page_size = 4096 /* The size of a storage page. */ first_index = dec_position , /* Determine the first 512 byte */ % ipcs_eval_limit /* increment.*/ last_index = (dec_position , /* Determine the last 512 byte */ + dec_length ) , /* increment.*/ % ipcs_eval_limit buffer = '' Do i = first_index to last_index /* For each 512 increment. */ If storage.hex_address.i = '' Then Do /*-*/ /* If the data has not yet been accessed, access it. */ /*-*/ hex_address_dot = ,/* Indicate for IPCS that is */ hex_address || '.' /* an address. */ /* */ "EVALUATE" hex_address_dot , "POSITION("i*ipcs_eval_limit")" , "LENGTH("ipcs_eval_limit")" , "REXX(STORAGE(X))" /* Access that data by invoking */ /* the IPCS EVALUATE subcommand. */ If rc > 0 Then Do /*--
Re: IPCS and Rexx
On Thu, 12 Oct 2023 15:28:07 -0500, Jon Perryman wrote: >* Creating REXX compatible control block mapping is fast and simple > using the technique. Instead of coding BLSQ macros, create a table of names > with offsets that the REXX will use to convert names to offsets. > Call the program using ADDRESS LINKPGM passing the desired field name. After thinking about it, I was wrong about REXX ADDRESS LINKPGM. I think I called the program as a REXX function call (maybe REXX call) and returned the result as a REXX response returned from the function call. It should be documented in the REXX manuals. I had to do it so much that I had a macro so I can't remember how to code it. If the program can't find the offset, the program should return a -1 (standard REXX failure code). -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
On Thu, 12 Oct 2023 20:26:56 +, Joseph Reichman wrote: >I just want to initialize with an assembler exit everything I would need to >debug the data with Rexx exec Dump analysis is very subjective and is different for each person / environment. Assembler, REXX or both can be used. For me, it was both. Decide what you need for debugging. For instance, I dealt with multiple address spaces and a product address space involving many IBM facilities including TSO. You might have the complexity with hundreds of control blocks. I suggest you build something simple first so that you can get familiar with IPCS concepts. For my situation, I used IPCS EQUATE to give me quick and easy access to important tasks and address spaces. Maybe have a REXX that creates equates for each save area and display a list of your callers with their work areas. If you have a lot of TCB, then list the TCBTIMEs to find out who is using too much CPU. There are a lot of possibilities. We can't give you everything you need because there is no such thing. Find someone in a similar situation and find out what they feel is important for their debugging. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
On Thu, 12 Oct 2023 11:45:48 +, Joseph Reichman wrote: > I looked thru the manuals to create an actual control block > or structure think you need assembler just give me a hint how I would go abou > this task In Rexx Everyone needs to stop making IPCS more difficult than it really is. It's been a really long time for me, so everything I say here will be conceptual and you will need to look up the real commands. I'm not going to include everything here. * REXX STORAGE() has nothing to do with IPCS. If you need help with it, then start another thread. * Almost everything you write for IPCS in assembler can be written in REXX. Sometimes it's simpler and faster in assembler but you can do it in REXX with a little perseverance. * Most IPCS subcommands intentionally do not return data to REXX because it doesn't make sense. These subcommands greatly simplify the displaying dump data. For instance, let's say you want to display all the ASCB's, TCB's and RB's. You do it as follows: ADDRESS IPCS RUNCHAIN ADDR(first_ASCB_address) LINK(ASCBNEXT) EXEC((TSO %ASCB_FORMAT). ASCB_FORMAT REXX: ADDRESS IPCS CBFORMAT X CB(ASCB) ADDRESS IPCS RUNCHAIN ADDR(X+ASCB_FIRST_TCB_offset) LINK(TCBNEXT_offset) EXEC((TSO %TCB_FORMAT) exit TCB_FORMAT REXX: ADDRESS IPCS CBFORMAT X CB(TCB) ADDRESS IPCS RUNCHAIN ADDR(X+TCB_FIRST_RB_offset) LINK(RBNEXT_offset) EXEC((TSO %RB_FORMAT) exit RB_FORMAT REXX: ADDRESS IPCS CBFORMAT X CB(RB) EXIT * If you prefer assembler, I'm guessing there is an IPCS exit service which allows you to do a CBFORMAT. You could run the chains from assembler calling CBFORMAT but the only difference is that assembler is compatible with offset changes where as REXX requires you modify the command. * Coding "ADDRESS IPCS" at the beginning of your REXX eliminates the need to code it on every IPCS subcommand. * REXX can issue all IPCS subcommands like those issued from IPCS option 6 or from the IPCS command line. E.g ADDRESS IPCS VERBEXIT VSMDATA. * Assembler BLSQ macros are very convenient to display your control blocks using ADDRESS IPSC CBFORMAT. They are NOT intended for your REXX to extract control block fields. * IPCS subcommands beginning with "EVAL" can return data to REXX. The single most useful is "EVALUATE" which returns the requested data to your REXX exec. For example, EVALUATE ADDR(121734.) LENGTH(500) REXX(MYDATA) fills the MYDATA variable with 500 bytes located at address 121734. Hint, if you need most of a control block, then get the entire CB but if you only need a couple fields, then get a couple fields. * It's possible to display control blocks using REXX directly but if you have more than a couple of fields to display, I strongly encourage you to code BLSQ assembler macros and use CBFORMAT. In REXX, you would use the following REXX to display MYDATA from the previous bullet point. ADDRESS IPCS NOTE "'MYDATA: CHAR "substring(mydata,10,20) "HEX "c2x(substring(mydata,200,4))"'" * REXX C2X() makes hex data human readable REXX C2D() and X2D() make data decimal allowing you to do arithmetic operation like adding a base address and offset giving you the address of the desired field. REXX D2X() and D2C() converts a number to either human readable hex or actual byte characters (e.g. 3 = F3 or x'F3') * Coding BLSQ assembler. I have several control blocks. Any CB change only needs a re-assemble of the mapping program. The following is the basic logic (not my real code): MACRO , #SETUP , Setup for IPCS CBFORMAT mapping R_DSECT OPSYN DSECT save real DSECT DSECT OPSYN #DSECT make DSECT a macro R_DSOPSYN DSsave real DS DS OPSYN #DS make DS a macro R_DCOPSYN DCsave real DC DC OPSYN #DC make DC a macro R_EQU OPSYN EQU save real EQU EQUOPSYN #EQU make EQU a macro MEND , MACRO , #RESTORE , Restore real instructions DSECT OPSYN R_DSECT DS OPSYN R_DS DC OPSYN R_DC EQU OPSYN R_EQU MEND , MACRO , #DSECT , R_DSECT AINSERT 'BLSQ statement for DSECT' MEND , MACRO , #DS , R_DS AINSERT 'BLSQ statement for DS' *** Offset is from the DSECT (or CSECT) *** field length is L' *** field length 1 might be a flag followed by equates describing each bit *** If you used multipliers or multiple fields, then you must consider them. *** T' gives you X, A, C and ??? which determines if you need hex display, char or ??? MEND , MACRO , #DC , R_DC AINSERT 'BLSQ statement for DC' *** Offset is from the DSECT (or CSECT) *** field length is L' *** If you used multipliers or multiple fields, then you must consider them. *** field length 1 might be a flag followed by equates
Re: IPCS and Rexx
I just want to initialize with an assembler exit everything I would need to debug the data with Rexx exec Get Outlook for iOS<https://aka.ms/o0ukef> From: IBM Mainframe Discussion List on behalf of Seymour J Metz Sent: Thursday, October 12, 2023 4:23:20 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx Do you mean write HLASM code that populates IPCS equates or REXX variables? If there are control blocks that you just want to display, I would use CBF with BLSQMDEF, BLSQMFLD and BLSQSHDR macros defining your fields; you don't need VERBX for that. From: IBM Mainframe Discussion List on behalf of Joseph Reichman Sent: Thursday, October 12, 2023 4:05 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx Seymour starting with verbx in the assembler to generate structure symbols Then for debugging with runchain etc I’m going to go with Rexx > On Oct 12, 2023, at 4:03 PM, Seymour J Metz wrote: > > It also depends on your experience level. I'm comfortable writing REXX-aware > functions in HLASM, but that might not be the best choice for someone just > learning. Using parse or substring is easier, although tedious. > > If Joseph just wants to display them then CBF is clearly the way to go, but I > don't know how much processing he wants to do. Maybe a hybrid approach? > > > From: IBM Mainframe Discussion List on behalf of > Tony Harminc > Sent: Thursday, October 12, 2023 12:40 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: IPCS and Rexx > >> On Thu, 12 Oct 2023 at 07:29, Joseph Reichman wrote: >> >> I understand my only question is to get it clear to CREATE a structure >> aka control block this can only be done using the BLSQ assembler macros >> >> I agree any other processing I need to do I’ll do it in Rexx >> > > I suggest you think about what you want to accomplish. If you want to have > IPCS format your control block and display it, then sure - use the BLSQ > macros, and then issue CBF. This is essentially adding your CBs to IPCS so > IPCS can produce the same kind of thing you get from the SUMMary and > ANALYZE and CBF commands, which - if you issue all of them - is pretty > much like reproducing a printed SYSUDUMP. You then do the work of figuring > out what went wrong. > > But then what's the REXX doing? In my view the benefit of using REXX in > IPCS is that it can do analysis, and as I said, can go through your (and > IBM's) control blocks to discover anomalies, summarize the status of things > *with knowledge of and from the point of view of your application*, and > perhaps interact with you as the analysis proceeds. > > You can certainly issue CBF (using your CB definitions) from your REXX code > - nothing wrong with that. But again, it might be more useful to have your > REXX go through your CB directly (not through formatted output from CBF) to > discover what's gone wrong. > > It depends on what you want, and that may be very different from our case > as an ISV. Our need is first to promptly get an idea of what a customer > dump is about, and how it relates to the ticket they've opened. We > routinely run a REXX program that summarizes things - is our product > actually running (we get plenty of dumps that don't capture our code or > where the product isn't even installed or was never started or the dump is > from the wrong LPAR or from last year), what version is it, what fixes are > applied, a list of the module eyecatchers, what abended (if anything), how > long has our code been running (sometimes it abended at startup - other > times it's been running for 6 months), etc. etc. This saves a lot of time > in initial analysis. Then we have the background, and can go on to more > detailed look at what went wrong and how it relates to the reported > symptoms (abend, hang, wrong results, performance, etc.) For this second > stage we can, as I described earlier, format useful information from our > own and IBM's CBs, summarize and drill down into the status of our work > queues, and so on. > > If you are just debugging your own code in your own dev/test environment, > then your needs will be quite different. If you'll explain what you want to > accomplish, then I'm sure people will have further suggestions. > > Tony H. > > -- > 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
Re: IPCS and Rexx
Do you mean write HLASM code that populates IPCS equates or REXX variables? If there are control blocks that you just want to display, I would use CBF with BLSQMDEF, BLSQMFLD and BLSQSHDR macros defining your fields; you don't need VERBX for that. From: IBM Mainframe Discussion List on behalf of Joseph Reichman Sent: Thursday, October 12, 2023 4:05 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx Seymour starting with verbx in the assembler to generate structure symbols Then for debugging with runchain etc I’m going to go with Rexx > On Oct 12, 2023, at 4:03 PM, Seymour J Metz wrote: > > It also depends on your experience level. I'm comfortable writing REXX-aware > functions in HLASM, but that might not be the best choice for someone just > learning. Using parse or substring is easier, although tedious. > > If Joseph just wants to display them then CBF is clearly the way to go, but I > don't know how much processing he wants to do. Maybe a hybrid approach? > > > From: IBM Mainframe Discussion List on behalf of > Tony Harminc > Sent: Thursday, October 12, 2023 12:40 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: IPCS and Rexx > >> On Thu, 12 Oct 2023 at 07:29, Joseph Reichman wrote: >> >> I understand my only question is to get it clear to CREATE a structure >> aka control block this can only be done using the BLSQ assembler macros >> >> I agree any other processing I need to do I’ll do it in Rexx >> > > I suggest you think about what you want to accomplish. If you want to have > IPCS format your control block and display it, then sure - use the BLSQ > macros, and then issue CBF. This is essentially adding your CBs to IPCS so > IPCS can produce the same kind of thing you get from the SUMMary and > ANALYZE and CBF commands, which - if you issue all of them - is pretty > much like reproducing a printed SYSUDUMP. You then do the work of figuring > out what went wrong. > > But then what's the REXX doing? In my view the benefit of using REXX in > IPCS is that it can do analysis, and as I said, can go through your (and > IBM's) control blocks to discover anomalies, summarize the status of things > *with knowledge of and from the point of view of your application*, and > perhaps interact with you as the analysis proceeds. > > You can certainly issue CBF (using your CB definitions) from your REXX code > - nothing wrong with that. But again, it might be more useful to have your > REXX go through your CB directly (not through formatted output from CBF) to > discover what's gone wrong. > > It depends on what you want, and that may be very different from our case > as an ISV. Our need is first to promptly get an idea of what a customer > dump is about, and how it relates to the ticket they've opened. We > routinely run a REXX program that summarizes things - is our product > actually running (we get plenty of dumps that don't capture our code or > where the product isn't even installed or was never started or the dump is > from the wrong LPAR or from last year), what version is it, what fixes are > applied, a list of the module eyecatchers, what abended (if anything), how > long has our code been running (sometimes it abended at startup - other > times it's been running for 6 months), etc. etc. This saves a lot of time > in initial analysis. Then we have the background, and can go on to more > detailed look at what went wrong and how it relates to the reported > symptoms (abend, hang, wrong results, performance, etc.) For this second > stage we can, as I described earlier, format useful information from our > own and IBM's CBs, summarize and drill down into the status of our work > queues, and so on. > > If you are just debugging your own code in your own dev/test environment, > then your needs will be quite different. If you'll explain what you want to > accomplish, then I'm sure people will have further suggestions. > > Tony H. > > -- > 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 -- 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: IPCS and Rexx
Seymour starting with verbx in the assembler to generate structure symbols Then for debugging with runchain etc I’m going to go with Rexx > On Oct 12, 2023, at 4:03 PM, Seymour J Metz wrote: > > It also depends on your experience level. I'm comfortable writing REXX-aware > functions in HLASM, but that might not be the best choice for someone just > learning. Using parse or substring is easier, although tedious. > > If Joseph just wants to display them then CBF is clearly the way to go, but I > don't know how much processing he wants to do. Maybe a hybrid approach? > > > From: IBM Mainframe Discussion List on behalf of > Tony Harminc > Sent: Thursday, October 12, 2023 12:40 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: IPCS and Rexx > >> On Thu, 12 Oct 2023 at 07:29, Joseph Reichman wrote: >> >> I understand my only question is to get it clear to CREATE a structure >> aka control block this can only be done using the BLSQ assembler macros >> >> I agree any other processing I need to do I’ll do it in Rexx >> > > I suggest you think about what you want to accomplish. If you want to have > IPCS format your control block and display it, then sure - use the BLSQ > macros, and then issue CBF. This is essentially adding your CBs to IPCS so > IPCS can produce the same kind of thing you get from the SUMMary and > ANALYZE and CBF commands, which - if you issue all of them - is pretty > much like reproducing a printed SYSUDUMP. You then do the work of figuring > out what went wrong. > > But then what's the REXX doing? In my view the benefit of using REXX in > IPCS is that it can do analysis, and as I said, can go through your (and > IBM's) control blocks to discover anomalies, summarize the status of things > *with knowledge of and from the point of view of your application*, and > perhaps interact with you as the analysis proceeds. > > You can certainly issue CBF (using your CB definitions) from your REXX code > - nothing wrong with that. But again, it might be more useful to have your > REXX go through your CB directly (not through formatted output from CBF) to > discover what's gone wrong. > > It depends on what you want, and that may be very different from our case > as an ISV. Our need is first to promptly get an idea of what a customer > dump is about, and how it relates to the ticket they've opened. We > routinely run a REXX program that summarizes things - is our product > actually running (we get plenty of dumps that don't capture our code or > where the product isn't even installed or was never started or the dump is > from the wrong LPAR or from last year), what version is it, what fixes are > applied, a list of the module eyecatchers, what abended (if anything), how > long has our code been running (sometimes it abended at startup - other > times it's been running for 6 months), etc. etc. This saves a lot of time > in initial analysis. Then we have the background, and can go on to more > detailed look at what went wrong and how it relates to the reported > symptoms (abend, hang, wrong results, performance, etc.) For this second > stage we can, as I described earlier, format useful information from our > own and IBM's CBs, summarize and drill down into the status of our work > queues, and so on. > > If you are just debugging your own code in your own dev/test environment, > then your needs will be quite different. If you'll explain what you want to > accomplish, then I'm sure people will have further suggestions. > > Tony H. > > -- > 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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
It also depends on your experience level. I'm comfortable writing REXX-aware functions in HLASM, but that might not be the best choice for someone just learning. Using parse or substring is easier, although tedious. If Joseph just wants to display them then CBF is clearly the way to go, but I don't know how much processing he wants to do. Maybe a hybrid approach? From: IBM Mainframe Discussion List on behalf of Tony Harminc Sent: Thursday, October 12, 2023 12:40 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx On Thu, 12 Oct 2023 at 07:29, Joseph Reichman wrote: > I understand my only question is to get it clear to CREATE a structure > aka control block this can only be done using the BLSQ assembler macros > > I agree any other processing I need to do I’ll do it in Rexx > I suggest you think about what you want to accomplish. If you want to have IPCS format your control block and display it, then sure - use the BLSQ macros, and then issue CBF. This is essentially adding your CBs to IPCS so IPCS can produce the same kind of thing you get from the SUMMary and ANALYZE and CBF commands, which - if you issue all of them - is pretty much like reproducing a printed SYSUDUMP. You then do the work of figuring out what went wrong. But then what's the REXX doing? In my view the benefit of using REXX in IPCS is that it can do analysis, and as I said, can go through your (and IBM's) control blocks to discover anomalies, summarize the status of things *with knowledge of and from the point of view of your application*, and perhaps interact with you as the analysis proceeds. You can certainly issue CBF (using your CB definitions) from your REXX code - nothing wrong with that. But again, it might be more useful to have your REXX go through your CB directly (not through formatted output from CBF) to discover what's gone wrong. It depends on what you want, and that may be very different from our case as an ISV. Our need is first to promptly get an idea of what a customer dump is about, and how it relates to the ticket they've opened. We routinely run a REXX program that summarizes things - is our product actually running (we get plenty of dumps that don't capture our code or where the product isn't even installed or was never started or the dump is from the wrong LPAR or from last year), what version is it, what fixes are applied, a list of the module eyecatchers, what abended (if anything), how long has our code been running (sometimes it abended at startup - other times it's been running for 6 months), etc. etc. This saves a lot of time in initial analysis. Then we have the background, and can go on to more detailed look at what went wrong and how it relates to the reported symptoms (abend, hang, wrong results, performance, etc.) For this second stage we can, as I described earlier, format useful information from our own and IBM's CBs, summarize and drill down into the status of our work queues, and so on. If you are just debugging your own code in your own dev/test environment, then your needs will be quite different. If you'll explain what you want to accomplish, then I'm sure people will have further suggestions. Tony H. -- 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: IPCS and Rexx
On Thu, 12 Oct 2023 at 12:36, Seymour J Metz wrote: > You retrieve the CB storage from IPCS, use SUBSTR to extract the fields > you want, use c2x() to make binary data human readable and use standard > REXX abutment and concatenation to format the data with labels. > > From: IBM Mainframe Discussion List on behalf > of Joseph Reichman > > Seymour I looked thru the manuals to create an actual control block or > structure think you need assembler just give me a hint how I would go abou > this task In Rexx > Parse is the REXXy way to do this. Thing is, REXX has no notion of structures or DSECTs or whatever you want to call them. There is no way to statically define the layout of a multi-field and then have REXX understand how to deal with the fields. So the usual approach is to fetch the data into a variable (using IPCS EVAL or REXX Storage() ), and then use Parse Var with a list of the fields and offsets. This is a pain in many ways - not least becaues the offsets are in 1-origin decimal, and almost always what you have to work with is 0-origin hex - but it's quite easy to write a routine (in REXX, probably) to generate the Parse statements from assembler source or ADATA, or at least the list of names and offsets. Or for something small, just do it manually. Then, since REXX doesn't have typed variables, you have to convert some of the fields to a type you can work with usefully in REXX. So e.g. if you have a counter in an assembler DS F field, then you probably want to convert it into a REXX variable using C2D() so you can use it directly as e.g. a loop counter. All this has nothing to do with those BLSQ macros. That's a whole different topic. Tony H. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
I’m not sure what those macros generate but I’m sure you got it right > On Oct 12, 2023, at 12:36 PM, Seymour J Metz wrote: > > You retrieve the CB storage from IPCS, use SUBSTR to extract the fields you > want, use c2x() to make binary data human readable and use standard REXX > abutment and concatenation to format the data with labels. > > > From: IBM Mainframe Discussion List on behalf of > Joseph Reichman > Sent: Thursday, October 12, 2023 7:45 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: IPCS and Rexx > > Seymour I looked thru the manuals to create an actual control block or > structure think you need assembler just give me a hint how I would go abou > this task In Rexx > > Get Outlook for iOS<https://aka.ms/o0ukef> > > From: IBM Mainframe Discussion List on behalf of > Seymour J Metz > Sent: Thursday, October 12, 2023 7:40:18 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: IPCS and Rexx > > While it is admittedly easier using the macros, it can be done in pure REXX, > although I wouldn't bother. > > > From: IBM Mainframe Discussion List on behalf of > Joseph Reichman > Sent: Thursday, October 12, 2023 7:28 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: IPCS and Rexx > > I understand my only question is to get it clear to CREATE a structure aka > control block this can only be done using the BLSQ assembler macros > > I agree any other processing I need to do I’ll do it in Rexx > > Thank you > >> On Oct 12, 2023, at 5:03 AM, Binyamin Dissen >> wrote: >> >> The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT >> chain extracting information. >> >> All you need to do is do something similar with your control blocks, just >> using >> >> ADDRESS IPCS "NOTE 'text'" >> >> for the control block information that you want in the IPCS report. >> >> Most of my IPCS EXECs have the subroutine >> >> DOASAY: PROCEDURE EXPOSE DEBUGFLAG >> ARG TEXT >> NOTE "'"TEXT"'" >> IF DEBUGFLAG = "DEBUG" THEN >> SAY TEXT >> RETURN >> >> so I can >> >> CALL DOASAY string-expression >> >> On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman >> wrote: >> >> :>Thanks >> :> >> :>That was very helpful back to my first beef >> :> >> :>The EVAL….. subcommands particular to Rexx clist are interspersed among >> those IPCS subcommands done by hand >> :> >> :>The reason I think I cannt get around verbx assembler exit is because I >> want to create a structure to be used in the run chain command and I think >> that necessitates the use of the BLSQS assembler macros >> :> >> :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen >> wrote: >> :>> >> :>> ?I am still mystified why you want to use CBF out of REXX code. >> :>> >> :>> Use EVAL to get the storage. I would think that it would be much easier >> to >> :>> manipulate the control block itself rather than parse the CBF output. >> :>> >> :>> Here is a REXX program to show the subsystem control blocks. >> :>> >> :>> /* REXX */ >> :>> ARG REQNAME >> :>> ADDRESS IPCS >> :>> SSNAME = "" >> :>> POINTER = "" >> :>> SSCTADDR = "" >> :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" >> :>> DO WHILE SSCTADDR ¬= "" & RC = 0 >> :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))" >> :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))" >> :>> IF REQNAME = "" THEN >> :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME), >> :>>"NEXT" POINTER >> :>>ELSE >> :>>IF REQNAME = X2C(SSNAME) THEN DO >> :>>"EQUATE SSCT"REQNAME SSCTADDR"." >> :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR >> :>>RETURN 0 >> :>>END >> :>>SSCTADDR = POINTER >> :>>END >> :>> IF REQNAME <> "" THEN >> :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND" >> :>> RETURN 0 >> :>> >> :&
Re: IPCS and Rexx
On Thu, 12 Oct 2023 at 07:29, Joseph Reichman wrote: > I understand my only question is to get it clear to CREATE a structure > aka control block this can only be done using the BLSQ assembler macros > > I agree any other processing I need to do I’ll do it in Rexx > I suggest you think about what you want to accomplish. If you want to have IPCS format your control block and display it, then sure - use the BLSQ macros, and then issue CBF. This is essentially adding your CBs to IPCS so IPCS can produce the same kind of thing you get from the SUMMary and ANALYZE and CBF commands, which - if you issue all of them - is pretty much like reproducing a printed SYSUDUMP. You then do the work of figuring out what went wrong. But then what's the REXX doing? In my view the benefit of using REXX in IPCS is that it can do analysis, and as I said, can go through your (and IBM's) control blocks to discover anomalies, summarize the status of things *with knowledge of and from the point of view of your application*, and perhaps interact with you as the analysis proceeds. You can certainly issue CBF (using your CB definitions) from your REXX code - nothing wrong with that. But again, it might be more useful to have your REXX go through your CB directly (not through formatted output from CBF) to discover what's gone wrong. It depends on what you want, and that may be very different from our case as an ISV. Our need is first to promptly get an idea of what a customer dump is about, and how it relates to the ticket they've opened. We routinely run a REXX program that summarizes things - is our product actually running (we get plenty of dumps that don't capture our code or where the product isn't even installed or was never started or the dump is from the wrong LPAR or from last year), what version is it, what fixes are applied, a list of the module eyecatchers, what abended (if anything), how long has our code been running (sometimes it abended at startup - other times it's been running for 6 months), etc. etc. This saves a lot of time in initial analysis. Then we have the background, and can go on to more detailed look at what went wrong and how it relates to the reported symptoms (abend, hang, wrong results, performance, etc.) For this second stage we can, as I described earlier, format useful information from our own and IBM's CBs, summarize and drill down into the status of our work queues, and so on. If you are just debugging your own code in your own dev/test environment, then your needs will be quite different. If you'll explain what you want to accomplish, then I'm sure people will have further suggestions. Tony H. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
You retrieve the CB storage from IPCS, use SUBSTR to extract the fields you want, use c2x() to make binary data human readable and use standard REXX abutment and concatenation to format the data with labels. From: IBM Mainframe Discussion List on behalf of Joseph Reichman Sent: Thursday, October 12, 2023 7:45 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx Seymour I looked thru the manuals to create an actual control block or structure think you need assembler just give me a hint how I would go abou this task In Rexx Get Outlook for iOS<https://aka.ms/o0ukef> From: IBM Mainframe Discussion List on behalf of Seymour J Metz Sent: Thursday, October 12, 2023 7:40:18 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx While it is admittedly easier using the macros, it can be done in pure REXX, although I wouldn't bother. From: IBM Mainframe Discussion List on behalf of Joseph Reichman Sent: Thursday, October 12, 2023 7:28 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx I understand my only question is to get it clear to CREATE a structure aka control block this can only be done using the BLSQ assembler macros I agree any other processing I need to do I’ll do it in Rexx Thank you > On Oct 12, 2023, at 5:03 AM, Binyamin Dissen > wrote: > > The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT > chain extracting information. > > All you need to do is do something similar with your control blocks, just > using > > ADDRESS IPCS "NOTE 'text'" > > for the control block information that you want in the IPCS report. > > Most of my IPCS EXECs have the subroutine > > DOASAY: PROCEDURE EXPOSE DEBUGFLAG > ARG TEXT > NOTE "'"TEXT"'" > IF DEBUGFLAG = "DEBUG" THEN > SAY TEXT > RETURN > > so I can > > CALL DOASAY string-expression > > On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman > wrote: > > :>Thanks > :> > :>That was very helpful back to my first beef > :> > :>The EVAL….. subcommands particular to Rexx clist are interspersed among > those IPCS subcommands done by hand > :> > :>The reason I think I cannt get around verbx assembler exit is because I > want to create a structure to be used in the run chain command and I think > that necessitates the use of the BLSQS assembler macros > :> > :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen > wrote: > :>> > :>> ?I am still mystified why you want to use CBF out of REXX code. > :>> > :>> Use EVAL to get the storage. I would think that it would be much easier to > :>> manipulate the control block itself rather than parse the CBF output. > :>> > :>> Here is a REXX program to show the subsystem control blocks. > :>> > :>> /* REXX */ > :>> ARG REQNAME > :>> ADDRESS IPCS > :>> SSNAME = "" > :>> POINTER = "" > :>> SSCTADDR = "" > :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" > :>> DO WHILE SSCTADDR ¬= "" & RC = 0 > :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))" > :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))" > :>>IF REQNAME = "" THEN > :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME), > :>>"NEXT" POINTER > :>>ELSE > :>>IF REQNAME = X2C(SSNAME) THEN DO > :>>"EQUATE SSCT"REQNAME SSCTADDR"." > :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR > :>>RETURN 0 > :>>END > :>>SSCTADDR = POINTER > :>>END > :>> IF REQNAME <> "" THEN > :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND" > :>> RETURN 0 > :>> > :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman > :>> wrote: > :>> > :>> :>Hi > :>> :> > :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure > which > :>> :>is more appropriate. > :>> :> > :>> :>Would anyone know where the documentation is for IPCS and REXX > :>> :> > :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the > :>> :>command/subcommand in Rexx documented any where > :>> :> > :>&g
Re: IPCS and Rexx
Seymour I looked thru the manuals to create an actual control block or structure think you need assembler just give me a hint how I would go abou this task In Rexx Get Outlook for iOS<https://aka.ms/o0ukef> From: IBM Mainframe Discussion List on behalf of Seymour J Metz Sent: Thursday, October 12, 2023 7:40:18 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx While it is admittedly easier using the macros, it can be done in pure REXX, although I wouldn't bother. From: IBM Mainframe Discussion List on behalf of Joseph Reichman Sent: Thursday, October 12, 2023 7:28 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx I understand my only question is to get it clear to CREATE a structure aka control block this can only be done using the BLSQ assembler macros I agree any other processing I need to do I’ll do it in Rexx Thank you > On Oct 12, 2023, at 5:03 AM, Binyamin Dissen > wrote: > > The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT > chain extracting information. > > All you need to do is do something similar with your control blocks, just > using > > ADDRESS IPCS "NOTE 'text'" > > for the control block information that you want in the IPCS report. > > Most of my IPCS EXECs have the subroutine > > DOASAY: PROCEDURE EXPOSE DEBUGFLAG > ARG TEXT > NOTE "'"TEXT"'" > IF DEBUGFLAG = "DEBUG" THEN > SAY TEXT > RETURN > > so I can > > CALL DOASAY string-expression > > On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman > wrote: > > :>Thanks > :> > :>That was very helpful back to my first beef > :> > :>The EVAL….. subcommands particular to Rexx clist are interspersed among > those IPCS subcommands done by hand > :> > :>The reason I think I cannt get around verbx assembler exit is because I > want to create a structure to be used in the run chain command and I think > that necessitates the use of the BLSQS assembler macros > :> > :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen > wrote: > :>> > :>> ?I am still mystified why you want to use CBF out of REXX code. > :>> > :>> Use EVAL to get the storage. I would think that it would be much easier to > :>> manipulate the control block itself rather than parse the CBF output. > :>> > :>> Here is a REXX program to show the subsystem control blocks. > :>> > :>> /* REXX */ > :>> ARG REQNAME > :>> ADDRESS IPCS > :>> SSNAME = "" > :>> POINTER = "" > :>> SSCTADDR = "" > :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" > :>> DO WHILE SSCTADDR ¬= "" & RC = 0 > :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))" > :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))" > :>>IF REQNAME = "" THEN > :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME), > :>>"NEXT" POINTER > :>>ELSE > :>>IF REQNAME = X2C(SSNAME) THEN DO > :>>"EQUATE SSCT"REQNAME SSCTADDR"." > :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR > :>>RETURN 0 > :>>END > :>>SSCTADDR = POINTER > :>>END > :>> IF REQNAME <> "" THEN > :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND" > :>> RETURN 0 > :>> > :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman > :>> wrote: > :>> > :>> :>Hi > :>> :> > :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure > which > :>> :>is more appropriate. > :>> :> > :>> :>Would anyone know where the documentation is for IPCS and REXX > :>> :> > :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the > :>> :>command/subcommand in Rexx documented any where > :>> :> > :>> :>I mean formatting a control block doesn't seem like it can be done in > Rexx > :>> :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that > has > :>> :>to be Assembler > :>> :> > :>> :>Anu information or telling me where the doc is would help > :>> :> > :>> :>thanks > :>> :> > :>> :> > :>> :>--
Re: IPCS and Rexx
While it is admittedly easier using the macros, it can be done in pure REXX, although I wouldn't bother. From: IBM Mainframe Discussion List on behalf of Joseph Reichman Sent: Thursday, October 12, 2023 7:28 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx I understand my only question is to get it clear to CREATE a structure aka control block this can only be done using the BLSQ assembler macros I agree any other processing I need to do I’ll do it in Rexx Thank you > On Oct 12, 2023, at 5:03 AM, Binyamin Dissen > wrote: > > The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT > chain extracting information. > > All you need to do is do something similar with your control blocks, just > using > > ADDRESS IPCS "NOTE 'text'" > > for the control block information that you want in the IPCS report. > > Most of my IPCS EXECs have the subroutine > > DOASAY: PROCEDURE EXPOSE DEBUGFLAG > ARG TEXT > NOTE "'"TEXT"'" > IF DEBUGFLAG = "DEBUG" THEN > SAY TEXT > RETURN > > so I can > > CALL DOASAY string-expression > > On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman > wrote: > > :>Thanks > :> > :>That was very helpful back to my first beef > :> > :>The EVAL….. subcommands particular to Rexx clist are interspersed among > those IPCS subcommands done by hand > :> > :>The reason I think I cannt get around verbx assembler exit is because I > want to create a structure to be used in the run chain command and I think > that necessitates the use of the BLSQS assembler macros > :> > :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen > wrote: > :>> > :>> ?I am still mystified why you want to use CBF out of REXX code. > :>> > :>> Use EVAL to get the storage. I would think that it would be much easier to > :>> manipulate the control block itself rather than parse the CBF output. > :>> > :>> Here is a REXX program to show the subsystem control blocks. > :>> > :>> /* REXX */ > :>> ARG REQNAME > :>> ADDRESS IPCS > :>> SSNAME = "" > :>> POINTER = "" > :>> SSCTADDR = "" > :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" > :>> DO WHILE SSCTADDR ¬= "" & RC = 0 > :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))" > :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))" > :>>IF REQNAME = "" THEN > :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME), > :>>"NEXT" POINTER > :>>ELSE > :>>IF REQNAME = X2C(SSNAME) THEN DO > :>>"EQUATE SSCT"REQNAME SSCTADDR"." > :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR > :>>RETURN 0 > :>>END > :>>SSCTADDR = POINTER > :>>END > :>> IF REQNAME <> "" THEN > :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND" > :>> RETURN 0 > :>> > :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman > :>> wrote: > :>> > :>> :>Hi > :>> :> > :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure > which > :>> :>is more appropriate. > :>> :> > :>> :>Would anyone know where the documentation is for IPCS and REXX > :>> :> > :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the > :>> :>command/subcommand in Rexx documented any where > :>> :> > :>> :>I mean formatting a control block doesn't seem like it can be done in > Rexx > :>> :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that > has > :>> :>to be Assembler > :>> :> > :>> :>Anu information or telling me where the doc is would help > :>> :> > :>> :>thanks > :>> :> > :>> :> > :>> :>-- > :>> :>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/1IRjTkmdTyXkTVFuDlBW_hS
Re: IPCS and Rexx
I understand my only question is to get it clear to CREATE a structure aka control block this can only be done using the BLSQ assembler macros I agree any other processing I need to do I’ll do it in Rexx Thank you > On Oct 12, 2023, at 5:03 AM, Binyamin Dissen > wrote: > > The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT > chain extracting information. > > All you need to do is do something similar with your control blocks, just > using > > ADDRESS IPCS "NOTE 'text'" > > for the control block information that you want in the IPCS report. > > Most of my IPCS EXECs have the subroutine > > DOASAY: PROCEDURE EXPOSE DEBUGFLAG > ARG TEXT > NOTE "'"TEXT"'" > IF DEBUGFLAG = "DEBUG" THEN > SAY TEXT > RETURN > > so I can > > CALL DOASAY string-expression > > On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman > wrote: > > :>Thanks > :> > :>That was very helpful back to my first beef > :> > :>The EVAL….. subcommands particular to Rexx clist are interspersed among > those IPCS subcommands done by hand > :> > :>The reason I think I cannt get around verbx assembler exit is because I > want to create a structure to be used in the run chain command and I think > that necessitates the use of the BLSQS assembler macros > :> > :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen > wrote: > :>> > :>> ?I am still mystified why you want to use CBF out of REXX code. > :>> > :>> Use EVAL to get the storage. I would think that it would be much easier to > :>> manipulate the control block itself rather than parse the CBF output. > :>> > :>> Here is a REXX program to show the subsystem control blocks. > :>> > :>> /* REXX */ > :>> ARG REQNAME > :>> ADDRESS IPCS > :>> SSNAME = "" > :>> POINTER = "" > :>> SSCTADDR = "" > :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" > :>> DO WHILE SSCTADDR ¬= "" & RC = 0 > :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))" > :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))" > :>>IF REQNAME = "" THEN > :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME), > :>>"NEXT" POINTER > :>>ELSE > :>>IF REQNAME = X2C(SSNAME) THEN DO > :>>"EQUATE SSCT"REQNAME SSCTADDR"." > :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR > :>>RETURN 0 > :>>END > :>>SSCTADDR = POINTER > :>>END > :>> IF REQNAME <> "" THEN > :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND" > :>> RETURN 0 > :>> > :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman > :>> wrote: > :>> > :>> :>Hi > :>> :> > :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure > which > :>> :>is more appropriate. > :>> :> > :>> :>Would anyone know where the documentation is for IPCS and REXX > :>> :> > :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the > :>> :>command/subcommand in Rexx documented any where > :>> :> > :>> :>I mean formatting a control block doesn't seem like it can be done in > Rexx > :>> :>because it requires the BLSQMDEF BLSQMFLD and
Re: IPCS and Rexx
The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT chain extracting information. All you need to do is do something similar with your control blocks, just using ADDRESS IPCS "NOTE 'text'" for the control block information that you want in the IPCS report. Most of my IPCS EXECs have the subroutine DOASAY: PROCEDURE EXPOSE DEBUGFLAG ARG TEXT NOTE "'"TEXT"'" IF DEBUGFLAG = "DEBUG" THEN SAY TEXT RETURN so I can CALL DOASAY string-expression On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman wrote: :>Thanks :> :>That was very helpful back to my first beef :> :>The EVAL .. subcommands particular to Rexx clist are interspersed among those IPCS subcommands done by hand :> :>The reason I think I cannt get around verbx assembler exit is because I want to create a structure to be used in the run chain command and I think that necessitates the use of the BLSQS assembler macros :> :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen wrote: :>> :>> ?I am still mystified why you want to use CBF out of REXX code. :>> :>> Use EVAL to get the storage. I would think that it would be much easier to :>> manipulate the control block itself rather than parse the CBF output. :>> :>> Here is a REXX program to show the subsystem control blocks. :>> :>> /* REXX */ :>> ARG REQNAME :>> ADDRESS IPCS :>> SSNAME = "" :>> POINTER = "" :>> SSCTADDR = "" :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" :>> DO WHILE SSCTADDR ¬= "" & RC = 0 :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))" :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))" :>>IF REQNAME = "" THEN :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME), :>>"NEXT" POINTER :>>ELSE :>>IF REQNAME = X2C(SSNAME) THEN DO :>>"EQUATE SSCT"REQNAME SSCTADDR"." :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR :>>RETURN 0 :>>END :>>SSCTADDR = POINTER :>>END :>> IF REQNAME <> "" THEN :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND" :>> RETURN 0 :>> :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman :>> wrote: :>> :>> :>Hi :>> :> :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure which :>> :>is more appropriate. :>> :> :>> :>Would anyone know where the documentation is for IPCS and REXX :>> :> :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the :>> :>command/subcommand in Rexx documented any where :>> :> :>> :>I mean formatting a control block doesn't seem like it can be done in Rexx :>> :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has :>> :>to be Assembler :>> :> :>> :>Anu information or telling me where the doc is would help :>> :> :>> :>thanks :>> :> :>> :> :>> :>-- :>> :>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 -- 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: IPCS and Rexx
I'm also very interested in this IPCS subject. Can any of you share some Rexx samples interacting with IPCS, to see how it works? TIA Best Regards Ituriel do Nascimento Neto z/OS System Programmer Em quinta-feira, 12 de outubro de 2023 às 06:51:34 GMT+2, Tony Harminc escreveu: On Wed, 11 Oct 2023 at 19:25, Paul Gilmartin < 042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote: > On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote: > > ... > >So e.g. we have a product > >that has a notion of transactions, and a transaction is represented by a > >single CB that points to various other CBs, ... > > > How do you achieve that, given that Rexx has no pointer type? > The transaction product is not written in REXX (it's mostly assembler). We're talking about using REXX running under IPCS to process a dump from that product. STORAGE() lets you access and modify CBs once you know > their addresses, but not to use addresses of Rexx-owned objects. > Sure. But the REXX runs with IPCS commands available to it, and at least one of them (EVAL) can use a REXX variable interface. So the content of any storage in the dump can be stuck into a REXX variable. And a live system can (mostly) be examined without changing the REXX, since with suitable permissions IPCS EVAL can fetch from active storage rather than a dump. I can imagine supplying interfaces to GETMAIN/FREEMAIN. > Indeed. Perhaps an extension to the REXX Storage function. With of course ALETs and 64-bit and such as well... I once lamented that the SMP/E API depends on pointers in > ways that are hostile to REXX. Kurt Q. replied, approximately, > "Well, you can't please everybody." > > The ICSF API, in contrast, is REXX- friendly. There are SAMPLIB > members. The only pointers needed are arguments to LINKMVS. > The Binder API is mostly at least not REXX-unfriendly. > > REXX is important enough that it should be considered in the > design of an API. > IPCS does have that variable interface, which is Good Enough to get a lot done. Tony H. -- 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: IPCS and Rexx
On Wed, 11 Oct 2023 at 19:25, Paul Gilmartin < 042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote: > On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote: > >... > >So e.g. we have a product > >that has a notion of transactions, and a transaction is represented by a > >single CB that points to various other CBs, ... > > > How do you achieve that, given that Rexx has no pointer type? > The transaction product is not written in REXX (it's mostly assembler). We're talking about using REXX running under IPCS to process a dump from that product. STORAGE() lets you access and modify CBs once you know > their addresses, but not to use addresses of Rexx-owned objects. > Sure. But the REXX runs with IPCS commands available to it, and at least one of them (EVAL) can use a REXX variable interface. So the content of any storage in the dump can be stuck into a REXX variable. And a live system can (mostly) be examined without changing the REXX, since with suitable permissions IPCS EVAL can fetch from active storage rather than a dump. I can imagine supplying interfaces to GETMAIN/FREEMAIN. > Indeed. Perhaps an extension to the REXX Storage function. With of course ALETs and 64-bit and such as well... I once lamented that the SMP/E API depends on pointers in > ways that are hostile to REXX. Kurt Q. replied, approximately, > "Well, you can't please everybody." > > The ICSF API, in contrast, is REXX- friendly. There are SAMPLIB > members. The only pointers needed are arguments to LINKMVS. > The Binder API is mostly at least not REXX-unfriendly. > > REXX is important enough that it should be considered in the > design of an API. > IPCS does have that variable interface, which is Good Enough to get a lot done. Tony H. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
Ok thanks > On Oct 11, 2023, at 7:25 PM, Paul Gilmartin > <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote: > > On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote: >> ... >> So e.g. we have a product >> that has a notion of transactions, and a transaction is represented by a >> single CB that points to various other CBs, ... >> > How do you achieve that, given that Rexx has no pointer type? > STORAGE() lets you access and modify CBs once you know > their addresses, but not to use addresses of Rexx-owned objects. > > I can imagine supplying interfaces to GETMAIN/FREEMAIN. > > I once lamented that the SMP/E API depends on pointers in > ways that are hostile to REXX. Kurt Q. replied, approximately, > "Well, you can't please everybody." > > The ICSF API, in contrast, is REXX- friendly. There are SAMPLIB > members. The only pointers needed are arguments to LINKMVS. > > REXX is important enough that it should be considered in the > design of an API. > > -- > 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: IPCS and Rexx
On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote: >... >So e.g. we have a product >that has a notion of transactions, and a transaction is represented by a >single CB that points to various other CBs, ... > How do you achieve that, given that Rexx has no pointer type? STORAGE() lets you access and modify CBs once you know their addresses, but not to use addresses of Rexx-owned objects. I can imagine supplying interfaces to GETMAIN/FREEMAIN. I once lamented that the SMP/E API depends on pointers in ways that are hostile to REXX. Kurt Q. replied, approximately, "Well, you can't please everybody." The ICSF API, in contrast, is REXX- friendly. There are SAMPLIB members. The only pointers needed are arguments to LINKMVS. REXX is important enough that it should be considered in the design of an API. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
I have one question is there another way to create a structure besides using the BLSQ macros that’s the only thing I need to do in assembler the rest I’ll do Rexx > On Oct 11, 2023, at 5:08 PM, Tony Harminc wrote: > > On Wed, 11 Oct 2023 at 03:59, Joseph Reichman wrote: > > That was very helpful back to my first beef >> >> The EVAL….. subcommands particular to Rexx clist are interspersed among >> those IPCS subcommands done by hand >> >> The reason I think I cannt get around verbx assembler exit is because I >> want to create a structure to be used in the run chain command and I think >> that necessitates the use of the BLSQS assembler macros >> > > A few observations. First, like Binyamin, I don't know why you don't just > use REXX to format your own (or anyone's) control blocks. I, and I'm sure > others, have written many thousands of lines of REXX to go through dumps. > It's not just formatting CBs, but having the REXX take different actions > based on what it finds in some of those blocks. So e.g. we have a product > that has a notion of transactions, and a transaction is represented by a > single CB that points to various other CBs, and that transaction CB is > always on one of many possible queues, or it's being processed by a > specific module. So the REXX can go through the queues and format the > status and history of all or a single transaction, chase down and report on > the linked CBs with their various pieces of information, and so on. Or it > can start with a transaction ID (perhapssupplied by the dump reader as an > argument), find where it's queued, and report on things unique to the queue > it's on. And it can prompt the dump reader based on things found during > processing, e.g. "Transaction x has 7 sub-transactions that have not > completed - report on them? Reply Yes, No, or Details". That kind of thing. > > RUNCHAIN is one of the easiest things to write in REXX. It doesn't have to > exactly mimic the IPCS command, but it probably needs notions like the > offset of the chain pointer, how end-of-chain is marked, how to format some > fields in each block encountered (the eyecatcher?), whether there are > errors that make a CB instance suspicious (maybe the "in use" and "has been > freed" flags are both on), and so on. Just make it a subroutine, and then > you can call it from anywhere in your larger REXX program. > > Write yourself a few generalized REXX subroutines - one to manage storage > fetching requests with perhaps different types of input (hex or decimal or > character string for the address, since you may conveniently have any of > those available), one to format output like one line of a dump (in my case > I can optionally format EBCDIC/ASCII or both) and ensure that you don't > pass things like a single quote to the IPCS NOTE command, perhaps one to > manipulate addresses (you pass it a hex string and a decimal offset, or > whatever), and of course routines that are more specific to your own code > and CBs. > > There's another aspect... You can indeed use the BLSQ... macros to define a > control block in a format that IPCS can format from. These macros are not > very easy to use, imho, but still can be useful. You can do two things with > them: use them to define your own control blocks to IPCS (since obviously > IPCS doesn't come with these mappings) so that you can use CBF and such on > them, but also you can interpret the macro output in your own REXX routines > if you like, without using the IBM IPCS commands. Fiddly, but potentially a > way to do more than the IBM formatters do. > > [BTW, if you want a lot of examples of use of the BLSQ... macros, look at > the JES2 source code that should be on your system. HASM modules are > all related to IPCS, and most are CB definitions. I imagine IBM has a tool > to take the assembler definitions (or maybe ADATA) and churn out the BLSQM > stuff. Or maybe they're all hand written.] > > Tony H. > > -- > 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: IPCS and Rexx
On Wed, 11 Oct 2023 at 03:59, Joseph Reichman wrote: That was very helpful back to my first beef > > The EVAL….. subcommands particular to Rexx clist are interspersed among > those IPCS subcommands done by hand > > The reason I think I cannt get around verbx assembler exit is because I > want to create a structure to be used in the run chain command and I think > that necessitates the use of the BLSQS assembler macros > A few observations. First, like Binyamin, I don't know why you don't just use REXX to format your own (or anyone's) control blocks. I, and I'm sure others, have written many thousands of lines of REXX to go through dumps. It's not just formatting CBs, but having the REXX take different actions based on what it finds in some of those blocks. So e.g. we have a product that has a notion of transactions, and a transaction is represented by a single CB that points to various other CBs, and that transaction CB is always on one of many possible queues, or it's being processed by a specific module. So the REXX can go through the queues and format the status and history of all or a single transaction, chase down and report on the linked CBs with their various pieces of information, and so on. Or it can start with a transaction ID (perhapssupplied by the dump reader as an argument), find where it's queued, and report on things unique to the queue it's on. And it can prompt the dump reader based on things found during processing, e.g. "Transaction x has 7 sub-transactions that have not completed - report on them? Reply Yes, No, or Details". That kind of thing. RUNCHAIN is one of the easiest things to write in REXX. It doesn't have to exactly mimic the IPCS command, but it probably needs notions like the offset of the chain pointer, how end-of-chain is marked, how to format some fields in each block encountered (the eyecatcher?), whether there are errors that make a CB instance suspicious (maybe the "in use" and "has been freed" flags are both on), and so on. Just make it a subroutine, and then you can call it from anywhere in your larger REXX program. Write yourself a few generalized REXX subroutines - one to manage storage fetching requests with perhaps different types of input (hex or decimal or character string for the address, since you may conveniently have any of those available), one to format output like one line of a dump (in my case I can optionally format EBCDIC/ASCII or both) and ensure that you don't pass things like a single quote to the IPCS NOTE command, perhaps one to manipulate addresses (you pass it a hex string and a decimal offset, or whatever), and of course routines that are more specific to your own code and CBs. There's another aspect... You can indeed use the BLSQ... macros to define a control block in a format that IPCS can format from. These macros are not very easy to use, imho, but still can be useful. You can do two things with them: use them to define your own control blocks to IPCS (since obviously IPCS doesn't come with these mappings) so that you can use CBF and such on them, but also you can interpret the macro output in your own REXX routines if you like, without using the IBM IPCS commands. Fiddly, but potentially a way to do more than the IBM formatters do. [BTW, if you want a lot of examples of use of the BLSQ... macros, look at the JES2 source code that should be on your system. HASM modules are all related to IPCS, and most are CB definitions. I imagine IBM has a tool to take the assembler definitions (or maybe ADATA) and churn out the BLSQM stuff. Or maybe they're all hand written.] Tony H. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
Thanks That was very helpful back to my first beef The EVAL….. subcommands particular to Rexx clist are interspersed among those IPCS subcommands done by hand The reason I think I cannt get around verbx assembler exit is because I want to create a structure to be used in the run chain command and I think that necessitates the use of the BLSQS assembler macros > On Oct 11, 2023, at 2:18 AM, Binyamin Dissen > wrote: > > I am still mystified why you want to use CBF out of REXX code. > > Use EVAL to get the storage. I would think that it would be much easier to > manipulate the control block itself rather than parse the CBF output. > > Here is a REXX program to show the subsystem control blocks. > > /* REXX */ > ARG REQNAME > ADDRESS IPCS > SSNAME = "" > POINTER = "" > SSCTADDR = "" > "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" > DO WHILE SSCTADDR ¬= "" & RC = 0 >"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))" >"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))" >IF REQNAME = "" THEN >SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME), >"NEXT" POINTER >ELSE >IF REQNAME = X2C(SSNAME) THEN DO >"EQUATE SSCT"REQNAME SSCTADDR"." >SAY "SSCT"REQNAME "SET TO" SSCTADDR >RETURN 0 >END >SSCTADDR = POINTER >END > IF REQNAME <> "" THEN >SAY "SUBSYSTEM" REQNAME "NOT FOUND" > RETURN 0 > > On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman > wrote: > > :>Hi > :> > :>I am posting this message here and at the TSO/REXX LISTSERV not sure which > :>is more appropriate. > :> > :>Would anyone know where the documentation is for IPCS and REXX > :> > :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the > :>command/subcommand in Rexx documented any where > :> > :>I mean formatting a control block doesn't seem like it can be done in Rexx > :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has > :>to be Assembler > :> > :>Anu information or telling me where the doc is would help > :> > :>thanks > :> > :> > :>-- > :>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: IPCS and Rexx
I am still mystified why you want to use CBF out of REXX code. Use EVAL to get the storage. I would think that it would be much easier to manipulate the control block itself rather than parse the CBF output. Here is a REXX program to show the subsystem control blocks. /* REXX */ ARG REQNAME ADDRESS IPCS SSNAME = "" POINTER = "" SSCTADDR = "" "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" DO WHILE SSCTADDR ¬= "" & RC = 0 "EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))" "EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))" IF REQNAME = "" THEN SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME), "NEXT" POINTER ELSE IF REQNAME = X2C(SSNAME) THEN DO "EQUATE SSCT"REQNAME SSCTADDR"." SAY "SSCT"REQNAME "SET TO" SSCTADDR RETURN 0 END SSCTADDR = POINTER END IF REQNAME <> "" THEN SAY "SUBSYSTEM" REQNAME "NOT FOUND" RETURN 0 On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman wrote: :>Hi :> :>I am posting this message here and at the TSO/REXX LISTSERV not sure which :>is more appropriate. :> :>Would anyone know where the documentation is for IPCS and REXX :> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the :>command/subcommand in Rexx documented any where :> :>I mean formatting a control block doesn't seem like it can be done in Rexx :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has :>to be Assembler :> :>Anu information or telling me where the doc is would help :> :>thanks :> :> :>-- :>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: IPCS and Rexx
LINK, LINKMVS, LINKPGM? Is there still a working RCF process? I'm also skeptical of Modes of IPCS Operation in the user manual; I know of no reason that you can't use all of address iljexec address ipcs address tso in the same member. From: IBM Mainframe Discussion List on behalf of Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> Sent: Tuesday, October 10, 2023 10:30 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS and Rexx On Wed, 11 Oct 2023 01:36:32 +, Seymour J Metz wrote: >SA23-1382-60 z/OS MVS IPCS Commands > In which I read: – CALLMVS REXX host command environment >SA32-0972-60 z/OS TSO/E REXX Reference > Doesn't seem to mention "CALLMVS". Do they mean LINKMVS? -- 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: IPCS and Rexx
I read cover to cover the three IPCS manuals there are sporadic examples of certain subcommands Bottom line are there Rexx commands for all the commands from option 6 on the IPCS primary option menu Would be nice if this was documented with the syntax of each command > On Oct 10, 2023, at 10:30 PM, Paul Gilmartin > <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote: > > On Wed, 11 Oct 2023 01:36:32 +, Seymour J Metz wrote: > >> SA23-1382-60z/OS MVS IPCS Commands >> > In which I read: > – CALLMVS REXX host command environment > >> SA32-0972-60z/OS TSO/E REXX Reference >> > Doesn't seem to mention "CALLMVS". Do they mean LINKMVS? > > -- > 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: IPCS and Rexx
On Wed, 11 Oct 2023 01:36:32 +, Seymour J Metz wrote: >SA23-1382-60 z/OS MVS IPCS Commands > In which I read: – CALLMVS REXX host command environment >SA32-0972-60 z/OS TSO/E REXX Reference > Doesn't seem to mention "CALLMVS". Do they mean LINKMVS? -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS and Rexx
SA23-1382-60z/OS MVS IPCS Commands A23-1384-60 z/OS MVS IPCS User's Guide SA32-0972-60z/OS TSO/E REXX Reference SA32-0982-60z/OS TSO/E REXX User's Guide From: IBM Mainframe Discussion List on behalf of Joseph Reichman Sent: Tuesday, October 10, 2023 9:02 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: IPCS and Rexx Hi I am posting this message here and at the TSO/REXX LISTSERV not sure which is more appropriate. Would anyone know where the documentation is for IPCS and REXX Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the command/subcommand in Rexx documented any where I mean formatting a control block doesn't seem like it can be done in Rexx because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has to be Assembler Anu information or telling me where the doc is would help thanks -- 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
IPCS and Rexx
Hi I am posting this message here and at the TSO/REXX LISTSERV not sure which is more appropriate. Would anyone know where the documentation is for IPCS and REXX Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the command/subcommand in Rexx documented any where I mean formatting a control block doesn't seem like it can be done in Rexx because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has to be Assembler Anu information or telling me where the doc is would help thanks -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: issuing a IPCS subcommand from an IPCS exit
Trying to create a control block using BLSQMFLD BLSQMDEF and BLSQHMDR if not for the macros as Jon mentioned could of done this in Rexx Thanks > On Oct 10, 2023, at 5:58 AM, Binyamin Dissen > wrote: > > Why would you want to read the results of a CBF in your exit? Process the > actual control block. > > On Mon, 9 Oct 2023 16:50:22 -0400 Joseph Reichman > wrote: > > :>What if I need the info in the exit > :>Is there any way of getting it > > :>On Mon, Oct 9, 2023 at 4:49 PM Seymour J Metz wrote: > > :>> IPCS executes the command after you return from the exit. > > :>> From: IBM Mainframe Discussion List on behalf > :>> of Joseph Reichman > :>> Sent: Monday, October 9, 2023 10:40 AM > :>> To: IBM-MAIN@LISTSERV.UA.EDU > :>> Subject: issuing a IPCS subcommand from an IPCS exit > > :>> I would like to issue an IPCS subcommand (in an exit) to be specific what > :>> asid's are in dump so if I did this by hand it would be > > :>> IP CBF RTCT > > :>> Looking at the IPCS customization guide > > :>> Services Available to an IPCS Exit Routine > > :>> Under TSO/E services bullet 2 > > :>> 2. The STACK service and the TSO/E EXEC command can be used to queue > :>> subcommands and CLISTs, respectively, to be processed by IPCS immediately > :>> after completion of the current subcommand > > :>> Does this explain how if I wanted to execute the above command in a exit I > :>> would if someone could explain would appreciate it > > -- > 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: issuing a IPCS subcommand from an IPCS exit
I’m using the verbx exit mainly to format my own personal control blocks the BLSQMDEF BLSQMFLD and BLSQLSHDR macros and format service I’m not sure if it’s available under Rexx while the service might be the macros are assembler I could maybe have the Rexx call an assembler program for that particular task Thanks > On Oct 10, 2023, at 12:01 AM, Jon Perryman wrote: > > On Mon, 9 Oct 2023 10:40:11 -0400, Joseph Reichman > wrote: > >> I would like to issue an IPCS subcommand (in an exit) >> >> IP CBF RTCT >> >> 2. The STACK service and the TSO/E EXEC command can be used to queue >> subcommands and CLISTs, respectively, to be processed by IPCS immediately >> after completion of the current subcommand > > IPCS exits have access to a small subset of IPCS commands through IPCS exit > services. If I remember correctly, CBFORMAT is one of those services which > gives you access to IP CBFORMAT. It should be documented in the IPCS > Customization. > > An important IPCS exit service is NOTE which should be used to display lines. > Using non-IPCS macros may appear to work, they are not compatible with all > environments. For instance, WTO will display the line on the TSO terminal but > in batch but will not display in the ISPF IPCS dialog. > > You should avoid exec and "STACK service" (which I believe is "TSO/e STACK > service"). If you are familiar with REXX, think about the problems in using > push/pull to communicate. > > My suggestion is to REXX execs. When an IPCS exit is needed, then use the > IPCS equate service to pass information back to the REXX exec which will use > IP LISTSYM to grab the information. It still processes after the command > finishes but without the TSO stack pitfalls.It also allows you to issue > commands not supported by exit services and you SYSOUTTRAP output generated > by IPCS commands (If I remember correctly). > > > > -- > 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: issuing a IPCS subcommand from an IPCS exit
Why would you want to read the results of a CBF in your exit? Process the actual control block. On Mon, 9 Oct 2023 16:50:22 -0400 Joseph Reichman wrote: :>What if I need the info in the exit :>Is there any way of getting it :>On Mon, Oct 9, 2023 at 4:49 PM Seymour J Metz wrote: :>> IPCS executes the command after you return from the exit. :>> From: IBM Mainframe Discussion List on behalf :>> of Joseph Reichman :>> Sent: Monday, October 9, 2023 10:40 AM :>> To: IBM-MAIN@LISTSERV.UA.EDU :>> Subject: issuing a IPCS subcommand from an IPCS exit :>> I would like to issue an IPCS subcommand (in an exit) to be specific what :>> asid's are in dump so if I did this by hand it would be :>> IP CBF RTCT :>> Looking at the IPCS customization guide :>> Services Available to an IPCS Exit Routine :>> Under TSO/E services bullet 2 :>> 2. The STACK service and the TSO/E EXEC command can be used to queue :>> subcommands and CLISTs, respectively, to be processed by IPCS immediately :>> after completion of the current subcommand :>> Does this explain how if I wanted to execute the above command in a exit I :>> would if someone could explain would appreciate it -- 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: issuing a IPCS subcommand from an IPCS exit
On Mon, 9 Oct 2023 10:40:11 -0400, Joseph Reichman wrote: >I would like to issue an IPCS subcommand (in an exit) > >IP CBF RTCT > >2. The STACK service and the TSO/E EXEC command can be used to queue >subcommands and CLISTs, respectively, to be processed by IPCS immediately >after completion of the current subcommand IPCS exits have access to a small subset of IPCS commands through IPCS exit services. If I remember correctly, CBFORMAT is one of those services which gives you access to IP CBFORMAT. It should be documented in the IPCS Customization. An important IPCS exit service is NOTE which should be used to display lines. Using non-IPCS macros may appear to work, they are not compatible with all environments. For instance, WTO will display the line on the TSO terminal but in batch but will not display in the ISPF IPCS dialog. You should avoid exec and "STACK service" (which I believe is "TSO/e STACK service"). If you are familiar with REXX, think about the problems in using push/pull to communicate. My suggestion is to REXX execs. When an IPCS exit is needed, then use the IPCS equate service to pass information back to the REXX exec which will use IP LISTSYM to grab the information. It still processes after the command finishes but without the TSO stack pitfalls.It also allows you to issue commands not supported by exit services and you SYSOUTTRAP output generated by IPCS commands (If I remember correctly). -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: issuing a IPCS subcommand from an IPCS exit
What if I need the info in the exit Is there any way of getting it On Mon, Oct 9, 2023 at 4:49 PM Seymour J Metz wrote: > IPCS executes the command after you return from the exit. > > > From: IBM Mainframe Discussion List on behalf > of Joseph Reichman > Sent: Monday, October 9, 2023 10:40 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: issuing a IPCS subcommand from an IPCS exit > > Hi > > I would like to issue an IPCS subcommand (in an exit) to be specific what > asid's are in dump so if I did this by hand it would be > > IP CBF RTCT > > Looking at the IPCS customization guide > > Services Available to an IPCS Exit Routine > > Under TSO/E services bullet 2 > > 2. The STACK service and the TSO/E EXEC command can be used to queue > subcommands and CLISTs, respectively, to be processed by IPCS immediately > after completion of the current subcommand > > Does this explain how if I wanted to execute the above command in a exit I > would if someone could explain would appreciate it > > Thanks > > -- > 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 > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: issuing a IPCS subcommand from an IPCS exit
IPCS executes the command after you return from the exit. From: IBM Mainframe Discussion List on behalf of Joseph Reichman Sent: Monday, October 9, 2023 10:40 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: issuing a IPCS subcommand from an IPCS exit Hi I would like to issue an IPCS subcommand (in an exit) to be specific what asid's are in dump so if I did this by hand it would be IP CBF RTCT Looking at the IPCS customization guide Services Available to an IPCS Exit Routine Under TSO/E services bullet 2 2. The STACK service and the TSO/E EXEC command can be used to queue subcommands and CLISTs, respectively, to be processed by IPCS immediately after completion of the current subcommand Does this explain how if I wanted to execute the above command in a exit I would if someone could explain would appreciate it Thanks -- 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
issuing a IPCS subcommand from an IPCS exit
Hi I would like to issue an IPCS subcommand (in an exit) to be specific what asid's are in dump so if I did this by hand it would be IP CBF RTCT Looking at the IPCS customization guide Services Available to an IPCS Exit Routine Under TSO/E services bullet 2 2. The STACK service and the TSO/E EXEC command can be used to queue subcommands and CLISTs, respectively, to be processed by IPCS immediately after completion of the current subcommand Does this explain how if I wanted to execute the above command in a exit I would if someone could explain would appreciate it Thanks -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS: Can ADPLSACC Service code access 64 bit storage
use storage map service Thank you > On Oct 7, 2023, at 8:39 AM, Peter Relson wrote: > > I think that a better subject/question (accompanying that with information > about what you tried) would have been: > > In IPCS, how do you access 64-bit storage? I tried using ADPLSACC and that > didn't seem to work with the options that I used which were > > Some code I have seen uses BLSRESSY with ABITS=64 to define an initialized > area, copying that to a dynamic area, filling in that area with such info as > the length and address of the area to be accessed (when using ABITS=64, the > address field is 64-bit), then calling ADPLESRV such as this: > CALL ADPLESRV(ABDPL,ADPLSSYM,XSSP) > where the XSSP (defined by BLSRXSSP) has such information as the address of > the target buffer. > > 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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS: Can ADPLSACC Service code access 64 bit storage
I think that a better subject/question (accompanying that with information about what you tried) would have been: In IPCS, how do you access 64-bit storage? I tried using ADPLSACC and that didn't seem to work with the options that I used which were Some code I have seen uses BLSRESSY with ABITS=64 to define an initialized area, copying that to a dynamic area, filling in that area with such info as the length and address of the area to be accessed (when using ABITS=64, the address field is 64-bit), then calling ADPLESRV such as this: CALL ADPLESRV(ABDPL,ADPLSSYM,XSSP) where the XSSP (defined by BLSRXSSP) has such information as the address of the target buffer. 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: IPCS: Can ADPLSACC Service code access 64 bit storage
On Thu, 5 Oct 2023 15:53:48 -0400 Joseph Reichman wrote: :>Can ADPLSACC Service code access 64 bit storage My old code uses XMSP for 64 bit storage. -- 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: IPCS: Can ADPLSACC Service code access 64 bit storage
On Thu, Oct 05, 2023 at 03:53:48PM -0400, Joseph Reichman wrote: > Can ADPLSACC Service code access 64 bit storage Context? Oh, IPCS z/OS MVS IPCS Customization https://www.ibm.com/docs/en/zos/2.1.0?topic=services-invoking-exit-router https://www.ibm.com/docs/en/zos/2.1.0?topic=sas-requirements Field ADPLPAAD in ADPLPACC must contain the address of the requested dump data. MVS Data Areas (ABE - IAR) https://www.ibm.com/docs/en/zos/3.1.0?topic=iar-blsabdpl-information The following bit governs the masking of register zero prior to its use by the storage access service as a virtual storage address. If it is off, X'7FFF' will be logically ANDed with register zero to obtain the requested address. If it is on, X'00FF' will be logically ANDed with register zero to obtain the requested address. Hard to fit 64 bits in x'7fff' Don't know the real answer. The first question I'd ask is if the 64 bit storage was in the dump. 2nd is how to get to it... take a look at: https://www.ibm.com/docs/en/zos/3.1.0?topic=router-symbol-service Symbol Service https://www.ibm.com/docs/en/zos/3.1.0?topic=router-symbol-service Note that in OS/390® Release 10 and higher, the symbol service supports 64-bit addresses and lengths. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS: Can ADPLSACC Service code access 64 bit storage
I recently fought this battle when writing a verb exit that needed to access 64-bit storage. Perhaps it was because I couldn't see how to get ADPLSACC to access 64-bit storage. The IPCS Customization doc mentions that the Storage Map Service (ADPLSMAP) can do it, so that's what I went with. It gets passed an XMSP area which points to another area that you need, the Storage Map Record, mapped by BLSRSASY. The XMSP points to the Storage Map Record via XMSPSAR. Looking at the verb exit, the other relevant parts to accessing 64-bit storage seem to be: - BLSRSASY specifying ABITS=64 - Setting flag XMSPV64 in the XMSP Items for using ADPLSMAP that don't seem to be unique to accessing 64-bit storage: - I used the "Address Space Type Code" (field SASYAST) of "CPU ASID" via setting SASYAST to EQUate ZZZASTCV. For this "protocol", the ASID from which to get the storage is set in the 2nd qualifier (SASYAS2). In my case, I got the ASID from ADPLASID. The first qualifier (SASYAS1) is set to x''. This is mentioned towards the top of the BLSRSASY expansion. - Set XMSPCODE to EQUate XMSPACC indicating that we're accessing storage - Buffer to return storage into is pointed to by XMSPBUF - Address of storage to get from the dump is set in SASYLAD - Amount of storage to get is set in SASYFLE - Data type code SASYDTY set to EQUate ZZZDTYU, indicating "area" Those seem to be the important parts of what was required apart from the "administrative" stuff like setting the module name. I was also using an initialized BLSRSASY area from its macro invocation, so that could be setting (important) things that I missed mentioning. It took a bit of trial and error, so there could be a better way. But the Storage Map Service seems pretty powerful, so I liked the idea of having a working example of how to use it for future reference. === Adam Johanson Broadcom Mainframe Software Division -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
IPCS: Can ADPLSACC Service code access 64 bit storage
Can ADPLSACC Service code access 64 bit storage thanks -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: When did the IPCS follow 64 bit pointer character change?
Interesting. Code page 500 has them reversed Not sure how I got to that code page . Changed to 1140 (though I could go back to backups to see what I used to use). On Wed, 20 Sep 2023 17:31:00 -0700 Tom Brennan wrote: :>Also check the terminal type in the ISPF settings. I usually recommend :>option 3 (3278). Things like option 5 (3290A) start sending graphic :>escape characters for things like ] and can be confusing. Not sure how :>this would relate to ! though. But maybe it's worth a quick look. :> :>On 9/20/2023 3:30 PM, Mark Zelden wrote: :>> On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote: :>> :>>> It seems like the IPCS 64 bit follow pointer has become ] (right bracket) :>>> instead of ! (exclamation point). :>>> :>> :>> Code page issue on your emulator? Note the valid codes from help when I tried :>> a bracket. This is z/OS 2.5. :>> :>> :>> ASID(X'013C') ADDRESS(00.) STORAGE -- :>> Command ===> :>> Valid codes: L, H, %, ?, ! :>> 0020 7000 7000 7000 7000 :>> 0040 00FD7FE0 :>> 0060.:7F. LENGTH(X'20')--All bytes contain X'00' :>> 0080 1004 00020078 00040016 :>> 00A0 FE01 1FEDE400 :>> 00C0 2800 FBFB FE7C :>> 00E0.:FF. LENGTH(X'20')--All bytes contain X'00' :>> :>> :>> :>> Best Regards, :>> :>> Mark :>> -- :>> Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS :>> ITIL v3 Foundation Certified :>> mailto:m...@mzelden.com :>> Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html :>> :>> -- :>> 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 -- 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: When did the IPCS follow 64 bit pointer character change?
On Wed, 20 Sep 2023 17:30:05 -0500, Mark Zelden wrote: >On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen > wrote: > >Code page issue on your emulator? Note the valid codes from help when I >tried >a bracket. This is z/OS 2.5. > It's EBCDIC, y'know. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: When did the IPCS follow 64 bit pointer character change?
Also check the terminal type in the ISPF settings. I usually recommend option 3 (3278). Things like option 5 (3290A) start sending graphic escape characters for things like ] and can be confusing. Not sure how this would relate to ! though. But maybe it's worth a quick look. On 9/20/2023 3:30 PM, Mark Zelden wrote: On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote: It seems like the IPCS 64 bit follow pointer has become ] (right bracket) instead of ! (exclamation point). Code page issue on your emulator? Note the valid codes from help when I tried a bracket. This is z/OS 2.5. ASID(X'013C') ADDRESS(00.) STORAGE -- Command ===> Valid codes: L, H, %, ?, ! 0020 7000 7000 7000 7000 0040 00FD7FE0 0060.:7F. LENGTH(X'20')--All bytes contain X'00' 0080 1004 00020078 00040016 00A0 FE01 1FEDE400 00C0 2800 FBFB FE7C 00E0.:FF. LENGTH(X'20')--All bytes contain X'00' Best Regards, Mark -- Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS ITIL v3 Foundation Certified mailto:m...@mzelden.com Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html -- 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: When did the IPCS follow 64 bit pointer character change?
On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote: >It seems like the IPCS 64 bit follow pointer has become ] (right bracket) >instead of ! (exclamation point). > Code page issue on your emulator? Note the valid codes from help when I tried a bracket. This is z/OS 2.5. ASID(X'013C') ADDRESS(00.) STORAGE -- Command ===> Valid codes: L, H, %, ?, ! 0020 7000 7000 7000 7000 0040 00FD7FE0 0060.:7F. LENGTH(X'20')--All bytes contain X'00' 0080 1004 00020078 00040016 00A0 FE01 1FEDE400 00C0 2800 FBFB FE7C 00E0.:FF. LENGTH(X'20')--All bytes contain X'00' Best Regards, Mark -- Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS ITIL v3 Foundation Certified mailto:m...@mzelden.com Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: When did the IPCS follow 64 bit pointer character change?
I'm on 2.5 and just used ! today. On Wed, Sep 20, 2023 at 3:20 PM Binyamin Dissen wrote: > You specify the pointer type in the storage display screen. > > % = 24bit > ? = 31 bit > > On Wed, 20 Sep 2023 15:15:28 -0500 Paul Gilmartin > <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote: > > :>On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote: > :> > :>>It seems like the IPCS 64 bit follow pointer has become ] (right > bracket) > :>>instead of ! (exclamation point). > :>> > :>How does it distinguish 24- from 31-bit pointers? > :>Of course that could be resolved with control area maps. > > -- > 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: When did the IPCS follow 64 bit pointer character change?
You specify the pointer type in the storage display screen. % = 24bit ? = 31 bit On Wed, 20 Sep 2023 15:15:28 -0500 Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote: :>On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote: :> :>>It seems like the IPCS 64 bit follow pointer has become ] (right bracket) :>>instead of ! (exclamation point). :>> :>How does it distinguish 24- from 31-bit pointers? :>Of course that could be resolved with control area maps. -- 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: When did the IPCS follow 64 bit pointer character change?
On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote: >It seems like the IPCS 64 bit follow pointer has become ] (right bracket) >instead of ! (exclamation point). > How does it distinguish 24- from 31-bit pointers? Of course that could be resolved with control area maps. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
When did the IPCS follow 64 bit pointer character change?
It seems like the IPCS 64 bit follow pointer has become ] (right bracket) instead of ! (exclamation point). -- 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: IPCS formatting of I/O control blocks
If you do an IPCSDATA ACTIVE subcommand under IPCS, you should find in there DATA STRUCTURE(Tcb) FIND(BLSSTCB) FORMAT(IEATCBF) SCAN(BLSVTCB) EXIT CBSTAT(TCB) EP(BLSAFLG) EXIT CBSTAT(TCB) EP(IEAVTRCA) EXIT CBSTAT(TCB) EP(IEAVG701) EXIT CBSTAT(TCB) EP(BPXGMCBS) EXIT FORMAT(TCB) EP(IECDAFMT) EXIT FORMAT(TCB) EP(IECIOFMT) EXIT FORMAT(TCB) EP(IEAVTFMT) EXIT FORMAT(TCB) EP(IEAVD30) EXIT FORMAT(TCB) EP(IEAVXD01) EXIT FORMAT(TCB) EP(ICHIXTCB) It is the EXIT FORMAT(TCB) EP(IECDAFMT) that drives this data management formatting. Here is a sample from z/OS 2.5: DATA MANAGEMENT CONTROL BLOCKS FOR OPEN DATA SETS ---DEB 1 AT LOCATION 8AAD84, DDNAME=SYS00021 DSNAME=O.MCEVS4.DMP00065, INPUT -- -24 AVT: EOEA 00FF47EC SIOA 80CD5500 PCIA 00FF47EC CEA 00FF47EC XCEA 00FF47EC06:09:56.57 2023/03/21 -10 PREFIX: 0120 DEBX 008AB070 LENGTH 11 AMTYPE 20 TBLOF 0012(TIME AND DATE OPENED) +0 NMSUB 05 TCB8B11E0 AMLNG 10 DEBB 00 IRBAD 6800 PATB 1100 +10 NMEXT 01 USRPB 00 ECBAD FD00 DCBAD 8F0AEA40 EXSCL 04 APPB 8AAD60 +20 DVMOD 58 UCBA FB23B8 00 TRKHI 00 START 03160009 END 0001 NMTRK 2000 +30 ACC.METH: VOLSQ 0001 VOLNM 0001 DSNM BLKSI LRECL 1040 +40 SUBROUTINES: VU V7 BK BA BB +4A ***DCB AT LOCATION 0AEA40 (BSAM) DASD,RECFM=FBS +0 DCBE 000AED40 KEYCN 00 FDAD 00 0009 8B DVTBA E76026 +10 KEYLE 00 DEVT 2F TRBAL 7FFF BUFCB 0001 BUFL DSORG 4000 IOBAD 0001 +20 EODAD 8601 RECFM 98 EXLST 0AEC7CTIOT 0418MACRF 2400 IFLGS 00 DEBA 8AAD84 +30 OFLGS 12 D6C978 OPTCD 00 BCD808IOBL 0A SYNA 090DA8 CIND BLKSI 6180 +40 WCPO 30013030 IOBA 000C955C NCP 14 EOBRA CBD098 EOBW 80CBD098 DIRCT LRECL 1040 +54 POINT 00D68188 EXIT LIST: 870AEC90 **DCBE AT LOCATION 000AED40 +0 IDC4C3C2C5 LEN 0038 DCB 000AEA40RELA +10 FLG1 C080 NSTR 0001 FLG3 A000 BLKSI8 +20 XSIZ EODA SYNA MULTACC 00 MULTSDN 0A IOBS ARE NUMBERED IN PHYSICAL ORDER. ***IOB 16 AT LOCATION 0C95B4(SAM, BPAM - NORMAL SCHEDULING) CE DE -10VIDAN LENRD NIOBA 000C95FC NECB 7F00 +0 FLAG1 0200SENS ECBPT 7F0D6EA4 CSW 000C95E4 0C00 +10START 000C95DCDCBPT 000AEA40RESTR INCAM SEEK 098A +28 060B7000 6180 0D6EA4 DECB: ECB 7F00 FLAGS 000D3000DCB 1D551F04 AREA C9C5C1E5 STATUS E7C3C6C5 ***IOB 17 AT LOCATION 0C9604(SAM, BPAM - NORMAL SCHEDULING) CE DE -10VIDAN LENRD
Re: IPCS formatting of I/O control blocks
I see TIOT (does that include XTIOT?) but not DCB, DECB or IOB, and I would have expected any new support for them to be via VERBEXIT. Do you have a sample output? Thanks. From: IBM Mainframe Discussion List on behalf of Jim Mulder Sent: Thursday, April 27, 2023 2:41 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS formatting of I/O control blocks Yes, Wayne Rhoten enhanced that a while back. I don't remember which release of z/OS, but I have gotten accustomed to seeing it in the output from the SUMMARY FORMAT subcommand. Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Seymour J Metz Sent: Thursday, April 27, 2023 8:28 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: IPCS formatting of I/O control blocks The last time I looked, IPCS did not format, e.g., DCB, DECB, IOB. Has that changed? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 -- 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: IPCS formatting of I/O control blocks
Yes, Wayne Rhoten enhanced that a while back. I don't remember which release of z/OS, but I have gotten accustomed to seeing it in the output from the SUMMARY FORMAT subcommand. Jim Mulder -Original Message- From: IBM Mainframe Discussion List On Behalf Of Seymour J Metz Sent: Thursday, April 27, 2023 8:28 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: IPCS formatting of I/O control blocks The last time I looked, IPCS did not format, e.g., DCB, DECB, IOB. Has that changed? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS formatting of I/O control blocks
On Thu, 27 Apr 2023 12:28:18 + Seymour J Metz wrote: :>The last time I looked, IPCS did not format, e.g., DCB, DECB, IOB. Has that changed? Doesn't appear so. Need to make the formatting blocks. -- 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
IPCS formatting of I/O control blocks
The last time I looked, IPCS did not format, e.g., DCB, DECB, IOB. Has that changed? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS VERBX 64bit storage
On Thu, 22 Sep 2022 13:16:07 +0100 Colin Paice wrote: :>I'm very rusty ( 15+ years since I last used this) ... but can you use :>your 31 bit code to access a symbol relating to a 31/64 bit data item? :>I only used 31 bit, but I think I used to get a block of storage from the :>dump with a 64 bit address into my buffer in 31 bit address. :>You have to use the correct ESSY block. :>I could be deluded It has been a while, but I already had am API for the 31 bit addresses and did not want to change the API. The 64bit call will certainly do 31 bit zero extended addresses, but I believe the way the data is returned is different. :>On Thu, 22 Sept 2022 at 11:55, Binyamin Dissen :>wrote: :> :>> Looking at my code: :>> :>> The 31bit access call is :>> :>> IHBOPLTX ,+ :>>(ABDPL, ..ABDPL+ :>>=A(ADPLSACC),..TYPE OF CALL: ACCESS STOR+ :>>MY_ADPLPACC),..ACCESS STORAGE PARM LIST + :>> MF=(E,PLIST) :>> L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE :>> BASR R14,R15 :>> :>> The 64bit access call is: :>> :>> IHBOPLTX ,+ :>>(ABDPL, ..ABDPL+ :>>=A(ADPLSMAP),..TYPE OF CALL: MAP SERVICE+ :>>XMSP), ..ACCESS STORAGE PARM LIST + :>>MF=(E,PLIST) :>> L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE :>> BASR R14,R15 :>> :>> Formatting the request is left as an exercise for the OP :>> :>> :>> :>> On Wed, 21 Sep 2022 15:49:21 -0500 David Janicek :>> wrote: :>> :>> :>Hi all. I am new to this list but I have searched the archives for an :>> answer to my question already without any luck. :>> :> :>> :>I am responsible for maintaining an IBM IPCS VERBX (verb exit) that :>> analyzes our application dumps and points out any inconsistencies in it. :>> We are in the process of moving some of our data above the bar (ATB) and I :>> need to update the VERBX to analyze that data. Unfortunately the IBM doc :>> has virtually nothing on how to access 64bit storage in an IPCS dump via a :>> VERBX. I searched the internet and the only clue I found was a 7 year old :>> post on this site by Don Poitras. He listed a routine in C that would :>> access 64bit (and 31bit) storage. I have tried to mimic that code in :>> assembler but I haven't gotten it to work yet. I am posting my code at the :>> end of this listing. My hope is that someone will either point out the :>> error of my ways or, instead, simply post their code that does the same :>> thing. When I attempt to access 64bit storage, I get the following :>> messages: :>> :> :>> :>Dump analysis will be incomplete. :>> :> XSSP passed by exit PLATFORM is not valid. :>> :> Equate Symbol record failed consistency check. :>> :> :>> :>Here's my code that I'm using. Thanks in advance for your time on this. :>> :> :>> :> :>> :>Access64BitBlock Entry , :>> :>* :>> :> Lmg R2,R3,0(R1) -> storage address and length to get :>> :>* :>> :> Cli WS_Es64,0 have we initialized storage yet? :>> :> Jne Access64BitBlock100 Yes->Don't do it again :>> :>* :>> :> LaR14,WS_Es64 Copy :>> :> LaR15,WS_Es64$ skeleton :>> :> LaR0,C_Es64 to :>> :> Lgr R1,R15working :>> :> Mvcl R14,R0 storage :>> :>* :>> :> Mvc WS_Es64AST,=Al2(ZZZASTCV) CPU ASID :>> :> Lgf R0,WS_SSAsidSet owning :>> :> StR0,WS_Es64AS1 asid :>> :> Mvi WS_Es64DTY,ZZZDTYU Set as area :>> :>* :>> :> Mvc WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton :>> :> OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit :>> :> Mvc WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage :>> :> Mvc WS_Xs64Modn,C_PlatFormVar :>> :> LaR0,WS_Es64 Link them :>> :> StR0,WS_Xs64Esr together :>> :>* :>> :> CallFunc Function=StorageObtain, + :>> :> Param=4096,
Re: IPCS VERBX 64bit storage
I'm very rusty ( 15+ years since I last used this) ... but can you use your 31 bit code to access a symbol relating to a 31/64 bit data item? I only used 31 bit, but I think I used to get a block of storage from the dump with a 64 bit address into my buffer in 31 bit address. You have to use the correct ESSY block. I could be deluded Colin On Thu, 22 Sept 2022 at 11:55, Binyamin Dissen wrote: > Looking at my code: > > The 31bit access call is > > IHBOPLTX ,+ >(ABDPL, ..ABDPL+ >=A(ADPLSACC),..TYPE OF CALL: ACCESS STOR+ >MY_ADPLPACC),..ACCESS STORAGE PARM LIST + >MF=(E,PLIST) > L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE > BASR R14,R15 > > The 64bit access call is: > > IHBOPLTX ,+ >(ABDPL, ..ABDPL+ >=A(ADPLSMAP),..TYPE OF CALL: MAP SERVICE+ >XMSP), ..ACCESS STORAGE PARM LIST + >MF=(E,PLIST) > L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE > BASR R14,R15 > > Formatting the request is left as an exercise for the OP > > > > On Wed, 21 Sep 2022 15:49:21 -0500 David Janicek > wrote: > > :>Hi all. I am new to this list but I have searched the archives for an > answer to my question already without any luck. > :> > :>I am responsible for maintaining an IBM IPCS VERBX (verb exit) that > analyzes our application dumps and points out any inconsistencies in it. > We are in the process of moving some of our data above the bar (ATB) and I > need to update the VERBX to analyze that data. Unfortunately the IBM doc > has virtually nothing on how to access 64bit storage in an IPCS dump via a > VERBX. I searched the internet and the only clue I found was a 7 year old > post on this site by Don Poitras. He listed a routine in C that would > access 64bit (and 31bit) storage. I have tried to mimic that code in > assembler but I haven't gotten it to work yet. I am posting my code at the > end of this listing. My hope is that someone will either point out the > error of my ways or, instead, simply post their code that does the same > thing. When I attempt to access 64bit storage, I get the following > messages: > :> > :>Dump analysis will be incomplete. > :> XSSP passed by exit PLATFORM is not valid. > :> Equate Symbol record failed consistency check. > :> > :>Here's my code that I'm using. Thanks in advance for your time on this. > :> > :> > :>Access64BitBlock Entry , > :>* > :> Lmg R2,R3,0(R1) -> storage address and length to get > :>* > :> Cli WS_Es64,0 have we initialized storage yet? > :> Jne Access64BitBlock100 Yes->Don't do it again > :>* > :> LaR14,WS_Es64 Copy > :> LaR15,WS_Es64$ skeleton > :> LaR0,C_Es64 to > :> Lgr R1,R15working > :> Mvcl R14,R0 storage > :>* > :> Mvc WS_Es64AST,=Al2(ZZZASTCV) CPU ASID > :> Lgf R0,WS_SSAsidSet owning > :> StR0,WS_Es64AS1 asid > :> Mvi WS_Es64DTY,ZZZDTYU Set as area > :>* > :> Mvc WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton > :> OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit > :> Mvc WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage > :> Mvc WS_Xs64Modn,C_PlatFormVar > :> LaR0,WS_Es64 Link them > :> StR0,WS_Xs64Esr together > :>* > :> CallFunc Function=StorageObtain, + > :> Param=4096, + > :> Mf=(E,WS_StorageObtainParms) > :> StR15,WS_Xs64Buf Save buffer address > :>* > :>Access64BitBlock100 Ds 0h > :> Stg R2,WS_Es64LAD Set address to obtain > :> Stg R3,WS_Es64DLE Set length to obtain > :>* > :> Sam31 , This call requires 31 bit amode > :> SysState Amode64=NO > :>* > :> LgR4,WS_Abdpl@-> IPCS parameter area > :> Using Abdpl,R4 > :>* > :> L R15,AdplServ-> IPCS Service Routine > :> Call (15), go get the reque
Re: IPCS VERBX 64bit storage
Looking at my code: The 31bit access call is IHBOPLTX ,+ (ABDPL, ..ABDPL+ =A(ADPLSACC),..TYPE OF CALL: ACCESS STOR+ MY_ADPLPACC),..ACCESS STORAGE PARM LIST + MF=(E,PLIST) L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE BASR R14,R15 The 64bit access call is: IHBOPLTX ,+ (ABDPL, ..ABDPL+ =A(ADPLSMAP),..TYPE OF CALL: MAP SERVICE+ XMSP), ..ACCESS STORAGE PARM LIST + MF=(E,PLIST) L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE BASR R14,R15 Formatting the request is left as an exercise for the OP On Wed, 21 Sep 2022 15:49:21 -0500 David Janicek wrote: :>Hi all. I am new to this list but I have searched the archives for an answer to my question already without any luck. :> :>I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes our application dumps and points out any inconsistencies in it. We are in the process of moving some of our data above the bar (ATB) and I need to update the VERBX to analyze that data. Unfortunately the IBM doc has virtually nothing on how to access 64bit storage in an IPCS dump via a VERBX. I searched the internet and the only clue I found was a 7 year old post on this site by Don Poitras. He listed a routine in C that would access 64bit (and 31bit) storage. I have tried to mimic that code in assembler but I haven't gotten it to work yet. I am posting my code at the end of this listing. My hope is that someone will either point out the error of my ways or, instead, simply post their code that does the same thing. When I attempt to access 64bit storage, I get the following messages: :> :>Dump analysis will be incomplete. :> XSSP passed by exit PLATFORM is not valid. :> Equate Symbol record failed consistency check. :> :>Here's my code that I'm using. Thanks in advance for your time on this. :> :> :>Access64BitBlock Entry , :>* :> Lmg R2,R3,0(R1) -> storage address and length to get :>* :> Cli WS_Es64,0 have we initialized storage yet? :> Jne Access64BitBlock100 Yes->Don't do it again :>* :> LaR14,WS_Es64 Copy :> LaR15,WS_Es64$ skeleton :> LaR0,C_Es64 to :> Lgr R1,R15working :> Mvcl R14,R0 storage :>* :> Mvc WS_Es64AST,=Al2(ZZZASTCV) CPU ASID :> Lgf R0,WS_SSAsidSet owning :> StR0,WS_Es64AS1 asid :> Mvi WS_Es64DTY,ZZZDTYU Set as area :>* :> Mvc WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton :> OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit :> Mvc WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage :> Mvc WS_Xs64Modn,C_PlatFormVar :> LaR0,WS_Es64 Link them :> StR0,WS_Xs64Esr together :>* :> CallFunc Function=StorageObtain, + :> Param=4096, + :> Mf=(E,WS_StorageObtainParms) :> StR15,WS_Xs64Buf Save buffer address :>* :>Access64BitBlock100 Ds 0h
Re: IPCS VERBX 64bit storage
https://www.ibm.com/docs/en/zos/2.2.0?topic=dialog-examining-64-bit-dump-data-sets On Wed, Sep 21, 2022 at 3:59 PM David Janicek wrote: > > Hi all. I am new to this list but I have searched the archives for an answer > to my question already without any luck. > > I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes > our application dumps and points out any inconsistencies in it. We are in > the process of moving some of our data above the bar (ATB) and I need to > update the VERBX to analyze that data. Unfortunately the IBM doc has > virtually nothing on how to access 64bit storage in an IPCS dump via a VERBX. > I searched the internet and the only clue I found was a 7 year old post on > this site by Don Poitras. He listed a routine in C that would access 64bit > (and 31bit) storage. I have tried to mimic that code in assembler but I > haven't gotten it to work yet. I am posting my code at the end of this > listing. My hope is that someone will either point out the error of my ways > or, instead, simply post their code that does the same thing. When I attempt > to access 64bit storage, I get the following messages: > > Dump analysis will be incomplete. > XSSP passed by exit PLATFORM is not valid. > Equate Symbol record failed consistency check. > > Here's my code that I'm using. Thanks in advance for your time on this. > > > Access64BitBlock Entry , > * > Lmg R2,R3,0(R1) -> storage address and length to get > * > Cli WS_Es64,0 have we initialized storage yet? > Jne Access64BitBlock100 Yes->Don't do it again > * > LaR14,WS_Es64 Copy > LaR15,WS_Es64$ skeleton > LaR0,C_Es64 to > Lgr R1,R15working > Mvcl R14,R0 storage > * > Mvc WS_Es64AST,=Al2(ZZZASTCV) CPU ASID > Lgf R0,WS_SSAsidSet owning > StR0,WS_Es64AS1 asid > Mvi WS_Es64DTY,ZZZDTYU Set as area > * > Mvc WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton > OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit > Mvc WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage > Mvc WS_Xs64Modn,C_PlatFormVar > LaR0,WS_Es64 Link them > StR0,WS_Xs64Esr together > * > CallFunc Function=StorageObtain, + >Param=4096, + >Mf=(E,WS_StorageObtainParms) > StR15,WS_Xs64Buf Save buffer address > * > Access64BitBlock100 Ds 0h > Stg R2,WS_Es64LAD Set address to obtain > Stg R3,WS_Es64DLE Set length to obtain > * > Sam31 , This call requires 31 bit amode > SysState Amode64=NO > * > LgR4,WS_Abdpl@-> IPCS parameter area > Using Abdpl,R4 > * > L R15,AdplServ-> IPCS Service Routine > Call (15), go get the requested storage+ >(Abdpl,=A(AdplSSym),WS_Xs64), + >Mf=(E,WS_P64Parms) > * > Sam64 , Get back in 64bit mode > SysState Amode64=YES > Drop R4 > * > Ltr R15,R15 Did it work? > Llgt R15,WS_Xs64Buf -> returned storage > JzAccess64BitBlockContinue if successful > Sgr R15,R15 Indicate storage not found > Access64BitBlock900 Ds 0h > * > Exit , > * > C_Es64 BlsrEssy Dsect=NO,ABITS=64 > C_Xs64 BlsrXssp Dsect=NO > * > BeginWS , > * > SysState Amode64=NO > WS_P64Parms Call ,(,,),Mf=L > SysState Amode64=YES > * > WS_Es64 BlsrEssy Dsect=NO,ABITS=64 > WS_Es64$ Equ *-WS_Es64 > WS_Xs64 BlsrXssp Dsect=NO > WS_Xs64$ Equ *-WS_Xs64 > * > EndWS , > > -- > 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
Re: IPCS VERBX 64bit storage
https://listserv.ua.edu/cgi-bin/wa?A2=ind2111=IBM-MAIN=R28794=O14039FAB4B2233B763=d10jhm1%40us.ibm.com Jim Mulder z/OS Diagnosis, Design, Development, Test IBM Corp. Poughkeepsie NY -Original Message- From: IBM Mainframe Discussion List On Behalf Of David Janicek Sent: Wednesday, September 21, 2022 4:49 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: IPCS VERBX 64bit storage Hi all. I am new to this list but I have searched the archives for an answer to my question already without any luck. I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes our application dumps and points out any inconsistencies in it. We are in the process of moving some of our data above the bar (ATB) and I need to update the VERBX to analyze that data. Unfortunately the IBM doc has virtually nothing on how to access 64bit storage in an IPCS dump via a VERBX. I searched the internet and the only clue I found was a 7 year old post on this site by Don Poitras. He listed a routine in C that would access 64bit (and 31bit) storage. I have tried to mimic that code in assembler but I haven't gotten it to work yet. I am posting my code at the end of this listing. My hope is that someone will either point out the error of my ways or, instead, simply post their code that does the same thing. When I attempt to access 64bit storage, I get the following messages: Dump analysis will be incomplete. XSSP passed by exit PLATFORM is not valid. Equate Symbol record failed consistency check. Here's my code that I'm using. Thanks in advance for your time on this. -- 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
IPCS VERBX 64bit storage
Hi all. I am new to this list but I have searched the archives for an answer to my question already without any luck. I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes our application dumps and points out any inconsistencies in it. We are in the process of moving some of our data above the bar (ATB) and I need to update the VERBX to analyze that data. Unfortunately the IBM doc has virtually nothing on how to access 64bit storage in an IPCS dump via a VERBX. I searched the internet and the only clue I found was a 7 year old post on this site by Don Poitras. He listed a routine in C that would access 64bit (and 31bit) storage. I have tried to mimic that code in assembler but I haven't gotten it to work yet. I am posting my code at the end of this listing. My hope is that someone will either point out the error of my ways or, instead, simply post their code that does the same thing. When I attempt to access 64bit storage, I get the following messages: Dump analysis will be incomplete. XSSP passed by exit PLATFORM is not valid. Equate Symbol record failed consistency check. Here's my code that I'm using. Thanks in advance for your time on this. Access64BitBlock Entry , * Lmg R2,R3,0(R1) -> storage address and length to get * Cli WS_Es64,0 have we initialized storage yet? Jne Access64BitBlock100 Yes->Don't do it again * LaR14,WS_Es64 Copy LaR15,WS_Es64$ skeleton LaR0,C_Es64 to Lgr R1,R15working Mvcl R14,R0 storage * Mvc WS_Es64AST,=Al2(ZZZASTCV) CPU ASID Lgf R0,WS_SSAsidSet owning StR0,WS_Es64AS1 asid Mvi WS_Es64DTY,ZZZDTYU Set as area * Mvc WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit Mvc WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage Mvc WS_Xs64Modn,C_PlatFormVar LaR0,WS_Es64 Link them StR0,WS_Xs64Esr together * CallFunc Function=StorageObtain, + Param=4096, + Mf=(E,WS_StorageObtainParms) StR15,WS_Xs64Buf Save buffer address * Access64BitBlock100 Ds 0h Stg R2,WS_Es64LAD Set address to obtain Stg R3,WS_Es64DLE Set length to obtain * Sam31 , This call requires 31 bit amode SysState Amode64=NO * LgR4,WS_Abdpl@ -> IPCS parameter area Using Abdpl,R4 * L R15,AdplServ -> IPCS Service Routine Call (15), go get the requested storage+ (Abdpl,=A(AdplSSym),WS_Xs64), + Mf=(E,WS_P64Parms) * Sam64 , Get back in 64bit mode SysState Amode64=YES Drop R4 * Ltr R15,R15 Did it work? Llgt R15,WS_Xs64Buf -> returned storage
Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X
I cannot remember what the purpose was. I realise it is a bit odd to have X2C(C2X(<...>)). Perhaps it was just to have the same X2C(<...>) parms in the BITAND(): e.g. RB_TYPE_VAL = C2X(BITAND(X2C(X_E0),X2C(RBSTAB1))) On 20/04/2022 04:37, Tony Harminc wrote: > 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 > . > -- 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
RUNARRAY executes an IPCS command on each element of an array. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of CM Poncelet [03e99a92061c-dmarc-requ...@listserv.ua.edu] Sent: Tuesday, April 19, 2022 8:58 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X 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 -- 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
Burning CPU cycles. Code like X_E0='E0' would work just as well -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Tony Harminc [t...@harminc.net] Sent: Tuesday, April 19, 2022 11:37 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X 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 -- 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
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
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
Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X
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: IPCS - Dump timing [EXTERNAL]
Not exactly what the person asked but I have the date and time stamp as part of the dump dataset name. We set the dynamic feature active at IPL time. The date and time the dump was taken, well when DUMPSRV allocates the dataset, is in the dataset name. Helps with knowing when dumps happens. NAME=SYSD.DUMP. EXAMPLE=SYSD.DUMP.PR01.D220208.T162448.S0 Paul Feller GTS Mainframe Technical Support -Original Message- From: IBM Mainframe Discussion List On Behalf Of Matt Hogstrom Sent: Tuesday, February 8, 2022 3:27 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IPCS - Dump timing [EXTERNAL] IPCS STATUS SYSTEM or ST SYS ? Matt Hogstrom m...@hogstrom.org “It may be cognitive, but, it ain’t intuitive." — Hogstrom > On Feb 8, 2022, at 4:23 PM, Ed Jaffe wrote: > > On 2/7/2022 10:53 PM, Binyamin Dissen wrote: >> On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson >> >> wrote: >> >> :>We have some dumps taken on 6th February but is it possible to know >> at what :>time the dump was captured using IPCS and can we see the >> timestamp anywhere :>in DUMP using IPCS ? >> >> IPCS subcommand IEAVDUMP > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- Please note: This message originated outside your organization. Please use caution when opening links or attachments. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS - Dump timing
IPCS STATUS SYSTEM or ST SYS ? Matt Hogstrom m...@hogstrom.org “It may be cognitive, but, it ain’t intuitive." — Hogstrom > On Feb 8, 2022, at 4:23 PM, Ed Jaffe wrote: > > On 2/7/2022 10:53 PM, Binyamin Dissen wrote: >> On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson >> wrote: >> >> :>We have some dumps taken on 6th February but is it possible to know at what >> :>time the dump was captured using IPCS and can we see the timestamp anywhere >> :>in DUMP using IPCS ? >> >> IPCS subcommand IEAVDUMP > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS - Dump timing
On 2/7/2022 10:53 PM, Binyamin Dissen wrote: On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson wrote: :>We have some dumps taken on 6th February but is it possible to know at what :>time the dump was captured using IPCS and can we see the timestamp anywhere :>in DUMP using IPCS ? IPCS subcommand IEAVDUMP This helps prove what many of us know already: IPCS is "Black Art" whose Tricks of the Trade are passed along as Tribal Knowledge. Case in point: IEAVDUMP is not documented. -- Phoenix Software International Edward E. Jaffe 831 Parkview Drive North El Segundo, CA 90245 https://www.phoenixsoftware.com/ This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS - Dump timing
VERBX IEAVTSFS Jim Mulder z/OS Diagnosis, Design, Development, Test IBM Corp. Poughkeepsie NY "IBM Mainframe Discussion List" wrote on 02/07/2022 11:05:32 PM: > From: "Jake Anderson" > To: IBM-MAIN@LISTSERV.UA.EDU > Date: 02/08/2022 11:17 AM > Subject: IPCS - Dump timing > Sent by: "IBM Mainframe Discussion List" > > Hello > > We have some dumps taken on 6th February but is it possible to know at what > time the dump was captured using IPCS and can we see the timestamp anywhere > in DUMP using IPCS ? > > Jake -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS - Dump timing
Thank you so much On Tue, Feb 8, 2022, 10:54 AM Binyamin Dissen wrote: > On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson > wrote: > > :>We have some dumps taken on 6th February but is it possible to know at > what > :>time the dump was captured using IPCS and can we see the timestamp > anywhere > :>in DUMP using IPCS ? > > IPCS subcommand IEAVDUMP > > -- > 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: IPCS - Dump timing
On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson wrote: :>We have some dumps taken on 6th February but is it possible to know at what :>time the dump was captured using IPCS and can we see the timestamp anywhere :>in DUMP using IPCS ? IPCS subcommand IEAVDUMP -- 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: IPCS - Dump timing
IPCS STATUS. -Original Message- From: IBM Mainframe Discussion List On Behalf Of Jake Anderson Sent: 08 February 2022 11:06 To: IBM-MAIN@LISTSERV.UA.EDU Subject: IPCS - Dump timing Hello We have some dumps taken on 6th February but is it possible to know at what time the dump was captured using IPCS and can we see the timestamp anywhere in DUMP using IPCS ? Jake -- 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
IPCS - Dump timing
Hello We have some dumps taken on 6th February but is it possible to know at what time the dump was captured using IPCS and can we see the timestamp anywhere in DUMP using IPCS ? Jake -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS CTRACE Buffer Locate Exit
Jim, Thank you! I never would have thought of that. Hopefully that will resolve the issue. A holiday gift! Tom Phoenix Software International Sent from my iPhone > On Nov 24, 2021, at 9:23 PM, Jim Mulder wrote: > > That would be a good question for > Phoenix Software International's IBM Technical Advocate. > It turns out that is me. > I dug around a bit in the code that issues that message, and it looks > like it intends to put out some additional diagnostic information (and > then Abend if you are in IPCS line mode) if you put IPCS into TEST mode, > which is done via the SETDEF TESTsubcommand. > > Jim Mulder z/OS Diagnosis, Design, Development, Test IBM Corp. > Poughkeepsie NY > > "IBM Mainframe Discussion List" wrote on > 11/24/2021 10:39:10 AM: > >> From: "Tom Harper" >> To: IBM-MAIN@LISTSERV.UA.EDU >> Date: 11/24/2021 08:17 PM >> Subject: IPCS CTRACE Buffer Locate Exit >> Sent by: "IBM Mainframe Discussion List" >> >> All, >> >> I’ve used IPCS for decades including using CTRACE. One of the >> required exits for this facility is the Buffer Locate Exit, which I >> have used at prior jobs without issue. >> >> However now I cannot get it to work and I can’t determine what the issue > is. >> >> The exit passes the address of an equate symbol (ES) record, mapped >> by BLSRESSY. >> >> All the exit is supposed to do is to complete the BLSRESSY record >> and pass it back with a return code which indicates whether the exit >> should be driven again for another buffer. That all works correctly. >> >> I can locate the buffers and their lengths fine (l’ve tried both 31- >> bit and 64-bit buffers using the respective mappings for the ES) but >> to no avail. >> >> The message I get back from IPCS is BLS18460I which states that the >> symbol record is not valid. A further detail is the qualifier: >> >> “Equate Symbol record failed consistency check.” >> >> I have no idea what that means. I have carefully checked every field >> and they all appear to be correct to me. >> >> Any ideas would be much appreciated. >> >> Tom Harper >> >> Phoenix Software International > > > > -- > 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, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS CTRACE Buffer Locate Exit
That would be a good question for Phoenix Software International's IBM Technical Advocate. It turns out that is me. I dug around a bit in the code that issues that message, and it looks like it intends to put out some additional diagnostic information (and then Abend if you are in IPCS line mode) if you put IPCS into TEST mode, which is done via the SETDEF TESTsubcommand. Jim Mulder z/OS Diagnosis, Design, Development, Test IBM Corp. Poughkeepsie NY "IBM Mainframe Discussion List" wrote on 11/24/2021 10:39:10 AM: > From: "Tom Harper" > To: IBM-MAIN@LISTSERV.UA.EDU > Date: 11/24/2021 08:17 PM > Subject: IPCS CTRACE Buffer Locate Exit > Sent by: "IBM Mainframe Discussion List" > > All, > > I’ve used IPCS for decades including using CTRACE. One of the > required exits for this facility is the Buffer Locate Exit, which I > have used at prior jobs without issue. > > However now I cannot get it to work and I can’t determine what the issue is. > > The exit passes the address of an equate symbol (ES) record, mapped > by BLSRESSY. > > All the exit is supposed to do is to complete the BLSRESSY record > and pass it back with a return code which indicates whether the exit > should be driven again for another buffer. That all works correctly. > > I can locate the buffers and their lengths fine (l’ve tried both 31- > bit and 64-bit buffers using the respective mappings for the ES) but > to no avail. > > The message I get back from IPCS is BLS18460I which states that the > symbol record is not valid. A further detail is the qualifier: > > “Equate Symbol record failed consistency check.” > > I have no idea what that means. I have carefully checked every field > and they all appear to be correct to me. > > Any ideas would be much appreciated. > > Tom Harper > > Phoenix Software International -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS CTRACE Buffer Locate Exit
Yes. Sent from my iPhone > On Nov 24, 2021, at 1:28 PM, Seymour J Metz wrote: > > Are you STEPLIBing to the right MIGLIB? > > > -- > Shmuel (Seymour J.) Metz > http://mason.gmu.edu/~smetz3 > > > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of > Tom Harper [tomhar...@phoenixsoftware.com] > Sent: Wednesday, November 24, 2021 10:39 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: IPCS CTRACE Buffer Locate Exit > > All, > > I’ve used IPCS for decades including using CTRACE. One of the required exits > for this facility is the Buffer Locate Exit, which I have used at prior jobs > without issue. > > However now I cannot get it to work and I can’t determine what the issue is. > > The exit passes the address of an equate symbol (ES) record, mapped by > BLSRESSY. > > All the exit is supposed to do is to complete the BLSRESSY record and pass it > back with a return code which indicates whether the exit should be driven > again for another buffer. That all works correctly. > > I can locate the buffers and their lengths fine (l’ve tried both 31-bit and > 64-bit buffers using the respective mappings for the ES) but to no avail. > > The message I get back from IPCS is BLS18460I which states that the symbol > record is not valid. A further detail is the qualifier: > > “Equate Symbol record failed consistency check.” > > I have no idea what that means. I have carefully checked every field and they > all appear to be correct to me. > > Any ideas would be much appreciated. > > Tom Harper > > Phoenix Software International > > > This e-mail message, including any attachments, appended messages and the > information contained therein, is for the sole use of the intended > recipient(s). If you are not an intended recipient or have otherwise > received this email message in error, any use, dissemination, distribution, > review, storage or copying of this e-mail message and the information > contained therein is strictly prohibited. If you are not an intended > recipient, please contact the sender by reply e-mail and destroy all copies > of this email message and do not otherwise utilize or retain this email > message or any or all of the information contained therein. Although this > email message and any attachments or appended messages are believed to be > free of any virus or other defect that might affect any computer system into > which it is received and opened, it is the responsibility of the recipient > to ensure that it is virus free and no responsibility is accepted by the > sender for any loss or damage arising in any way from its opening or use. > > -- > 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 This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IPCS CTRACE Buffer Locate Exit
Are you STEPLIBing to the right MIGLIB? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Tom Harper [tomhar...@phoenixsoftware.com] Sent: Wednesday, November 24, 2021 10:39 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: IPCS CTRACE Buffer Locate Exit All, I’ve used IPCS for decades including using CTRACE. One of the required exits for this facility is the Buffer Locate Exit, which I have used at prior jobs without issue. However now I cannot get it to work and I can’t determine what the issue is. The exit passes the address of an equate symbol (ES) record, mapped by BLSRESSY. All the exit is supposed to do is to complete the BLSRESSY record and pass it back with a return code which indicates whether the exit should be driven again for another buffer. That all works correctly. I can locate the buffers and their lengths fine (l’ve tried both 31-bit and 64-bit buffers using the respective mappings for the ES) but to no avail. The message I get back from IPCS is BLS18460I which states that the symbol record is not valid. A further detail is the qualifier: “Equate Symbol record failed consistency check.” I have no idea what that means. I have carefully checked every field and they all appear to be correct to me. Any ideas would be much appreciated. Tom Harper Phoenix Software International This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use. -- 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
IPCS CTRACE Buffer Locate Exit
All, I’ve used IPCS for decades including using CTRACE. One of the required exits for this facility is the Buffer Locate Exit, which I have used at prior jobs without issue. However now I cannot get it to work and I can’t determine what the issue is. The exit passes the address of an equate symbol (ES) record, mapped by BLSRESSY. All the exit is supposed to do is to complete the BLSRESSY record and pass it back with a return code which indicates whether the exit should be driven again for another buffer. That all works correctly. I can locate the buffers and their lengths fine (l’ve tried both 31-bit and 64-bit buffers using the respective mappings for the ES) but to no avail. The message I get back from IPCS is BLS18460I which states that the symbol record is not valid. A further detail is the qualifier: “Equate Symbol record failed consistency check.” I have no idea what that means. I have carefully checked every field and they all appear to be correct to me. Any ideas would be much appreciated. Tom Harper Phoenix Software International This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN