Re: Looking For a Specific IPCS Command
FWIW If you expect to have to do something more than twice, write some code to do it for you. Here is some 'model' IPCS REXX code which you can modify/use to analyze any IPCS system dump. HTH & Merry Christmas. Cheers, Chris Poncelet (retired sysprog) /*-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 PSA_ADDRESS = '' "EVALUATE" PSA_ADDRESS||. , "POSITION("X2D(224)") LENGTH(4) REXX(STORAGE(OLD_ASCB_ADDRESS))" "EVALUATE" OLD_ASCB_ADDRESS||. , "POSITION("X2D(6C)") LENGTH(4) REXX(STORAGE(OLD_ASXB_ADDRESS))" "EVALUATE" OLD_ASXB_ADDRESS||. , "POSITION("X2D(4)") LENGTH(4) REXX(STORAGE(TCB_CHAIN_START_ADDRESS))" "EVALUATE" OLD_ASXB_ADDRESS||. , "POSITION("X2D(8)") LENGTH(4) REXX(STORAGE(TCB_CHAIN_STOP_ADDRESS))" SAY ' ' FIND_CICS_TCB: FOUND = 'NO' STOP = 'NO' TCB_CHAIN_NEXT_ADDRESS = TCB_CHAIN_START_ADDRESS X_E0 = C2X('E0'X) X_00 = C2X('00'X) X_40 = C2X('40'X) X_60 = C2X('60'X) X_80 = C2X('80'X) X_C0 = C2X('C0'X) DFHSIP = C2X('DFHSIP ') /* FOR EACH TCB, SEARCH FOR ALL RB'S */ DO WHILE (FOUND = 'NO') & (STOP = 'NO') IF TCB_CHAIN_NEXT_ADDRESS = TCB_CHAIN_STOP_ADDRESS THEN , STOP = 'YEAH' "EVALUATE" TCB_CHAIN_NEXT_ADDRESS||. , "POSITION(0) LENGTH(4) REXX(STORAGE(RB_ADDRESS))" /* FOR EACH RB: FIND PRB, IF ANY, AND CHECK WHETHER ASSOCIATED */ /* PROGRAM IS DFHSIP */ PRB_ADDRESS = 0 IRB_ADDRESS = 0 TIRB_ADDRESS = 0 SIRB_ADDRESS = 0 SVRB_ADDRESS = 0 DO K = 0 TO 999 WHILE (RB_ADDRESS ¬= TCB_CHAIN_NEXT_ADDRESS) LINK_ADDRESS.K = RB_ADDRESS "EVALUATE" RB_ADDRESS||. , "POSITION("X2D(0A)") LENGTH(1) REXX(STORAGE(RBSTAB1))" RB_TYPE_VAL = C2X(BITAND(X2C(X_E0),X2C(RBSTAB1))) SELECT; WHEN RB_TYPE_VAL = X_00 THEN DO /* PRB */ LINK_RB.K = 'PRB' "EVALUATE" RB_ADDRESS||. , "POSITION("X2D(0C)") LENGTH(4) REXX(STORAGE(CDE_ADDRESS))" "EVALUATE" CDE_ADDRESS||. , "POSITION("X2D(08)") LENGTH(8) REXX(STORAGE(PROGRAM_NAME))" IF PROGRAM_NAME = DFHSIP THEN FOUND = 'YEAH' END WHEN RB_TYPE_VAL = X_40 THEN , /* IRB */ LINK_RB.K = 'IRB' WHEN RB_TYPE_VAL = X_60 THEN , /* TIRB */ LINK_RB.K = 'TIRB' WHEN RB_TYPE_VAL = X_80 THEN , /* SIRB */ LINK_RB.K = 'SIRB' WHEN RB_TYPE_VAL = X_C0 THEN , /* SVRB */ LINK_RB.K = 'SVRB' OTHERWISE DO LINK_RB.K = 'EH??' SAY 'UNKNOWN RB AT ADDRESS =' RB_ADDRESS SAY 'RBSTAB1 VALUE = 'RBSTAB1 SAY 'PLEASE CHECK THIS!' SAY ' ' SAY 'EXECUTION OF IPCS CLIST %#CSAEH IS NOW BEING ABANDONED.' CALL EXIT END END /* SELECT */ "EVALUATE" RB_ADDRESS||. , "POSITION("X2D(1D)") LENGTH(3) REXX(STORAGE(RB_ADDRESS))" RB_ADDRESS = '00'||RB_ADDRESS END /* DO K = 0 TO 999 WHILE RB_ADDRESS [= TCB_CHAIN_NEXT_ADDRESS */ RB_INDEX = K - 1 /* SAVE RB INDEX COUNTER */ IF FOUND ¬= 'NO' THEN DO "EVALUATE" TCB_CHAIN_NEXT_ADDRESS||. , "POSITION("X2D(70)") LENGTH(4) REXX(STORAGE(AFCB_ADDRESS))" "EVALUATE" AFCB_ADDRESS||. , "POSITION("X2D(08)") LENGTH(4) REXX(STORAGE(DFHCSA_ADDRESS))" "EVALUATE" DFHCSA_ADDRESS||. , "POSITION("X2D(01B8)") LENGTH(8) REXX(STORAGE(DFHCSA_WORKAREA))" CSA_WORKAREA = X2C(DFHCSA_WORKAREA) /* DFHCSA HAS BEEN FOUND, SO DISPLAY THE RESULTS */ IF CSA_WORKAREA = 'WORKAREA' THEN DO /* FETCH ADDRESSES OF LOWEST/HIGHEST PRIORITY TASK DCA'S */ /* ON ACTIVE AND SUSPENDED TASK DCA CHAINS */
Re: Looking For a Specific IPCS Command
On Wed, Dec 25, 2019 at 11:10 John Lock wrote: > L 001B000.+32 LEN(4) > Oops! L 001B000.+32? LEN(length) > > > On Wed, Dec 25, 2019 at 09:48 esst...@juno.com wrote: > >> Hi,.I'm looking at the z/OS MVS IPCS Commands >> . >> I can use IPCS LIST 001B000. LENGTH(200) >> I can set an equate to this structure >> EQUATE CBX 01B000 >> . >> If each Structure had a pointer to the next structure >> at a fixed offset I could use a RUNCHAIN t get to the >> next structure. >> .. >> I want to list the data, pointed to by the address that resides within >> this structure. >> . >> Assume At Offset x'32' in this structure is a pointer to a work area. >> I can manually look at offset x'32' and use the value there in a LIST >> Command. >> I want to do this via a COMMAND. >> AT 001B000 + 32, I want to automatically display the data pointed to by >> this address. >> Is this function provided by an IPCS command ?.Any examples would be >> appreciated..Paul D'Angelo* >> >> -- >> 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: Looking For a Specific IPCS Command
L 001B000.+32 LEN(4) On Wed, Dec 25, 2019 at 09:48 esst...@juno.com wrote: > Hi,.I'm looking at the z/OS MVS IPCS Commands > . > I can use IPCS LIST 001B000. LENGTH(200) > I can set an equate to this structure > EQUATE CBX 01B000 > . > If each Structure had a pointer to the next structure > at a fixed offset I could use a RUNCHAIN t get to the > next structure. > .. > I want to list the data, pointed to by the address that resides within > this structure. > . > Assume At Offset x'32' in this structure is a pointer to a work area. > I can manually look at offset x'32' and use the value there in a LIST > Command. > I want to do this via a COMMAND. > AT 001B000 + 32, I want to automatically display the data pointed to by > this address. > Is this function provided by an IPCS command ?.Any examples would be > appreciated..Paul D'Angelo* > > -- > 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: Looking For a Specific IPCS Command
The RUNCHAIN command allows issuing a command for each block - it might be the EXEC parameter. On Wed, 25 Dec 2019 14:46:14 GMT "esst...@juno.com" wrote: :>Hi,.I'm looking at the z/OS MVS IPCS Commands :>. :>I can use IPCS LIST 001B000. LENGTH(200) :>I can set an equate to this structure :>EQUATE CBX 01B000 :>. :>If each Structure had a pointer to the next structure :>at a fixed offset I could use a RUNCHAIN t get to the :>next structure. :>.. :>I want to list the data, pointed to by the address that resides within this structure. :>. :>Assume At Offset x'32' in this structure is a pointer to a work area. :>I can manually look at offset x'32' and use the value there in a LIST Command. :>I want to do this via a COMMAND. :>AT 001B000 + 32, I want to automatically display the data pointed to by :>this address. :>Is this function provided by an IPCS command ?.Any examples would be appreciated..Paul D'Angelo* :> :>-- :>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 Should you use the mailblocks package and expect a response from me, you should preauthorize the dissensoftware.com domain. I very rarely bother responding to challenge/response systems, especially those from irresponsible companies. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Looking For a Specific IPCS Command
Hi,.I'm looking at the z/OS MVS IPCS Commands . I can use IPCS LIST 001B000. LENGTH(200) I can set an equate to this structure EQUATE CBX 01B000 . If each Structure had a pointer to the next structure at a fixed offset I could use a RUNCHAIN t get to the next structure. .. I want to list the data, pointed to by the address that resides within this structure. . Assume At Offset x'32' in this structure is a pointer to a work area. I can manually look at offset x'32' and use the value there in a LIST Command. I want to do this via a COMMAND. AT 001B000 + 32, I want to automatically display the data pointed to by this address. Is this function provided by an IPCS command ?.Any examples would be appreciated..Paul D'Angelo* -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN