Every execution of an IMS Type 2 command will result in one overall return code and one overall reason code. If multiple IMS systems are participating, some may encounter errors while others may not. Error information specific to an IMS system is grouped together by that system’s name. A minimum number of REXX variables or EDQ records are always created to allow further error analysis if necessary. The actual number will vary depending on specific error conditions and the number of participating IMS systems.
Every invocation of ADDRESS OPER containing the IMSPLEX keyword will always result in the creation of a number of REXX variables. OPSCMD execution will result in EDQ records where the execution environment allows.
Returns with the overall return code.
Returns with the overall reason code. If this is not 0, it will be followed by the following two messages:
Returns null, or the overall security return code.
Returns null, or the specific security return code
Returns null, or the security reason code
Returns the number of participating member IMS systems with error information. A 0 value indicates no member is reporting errors. If this variable returns with a positive integer, n, the following are created:
Returns with number of individual error lines from the member identified as n. If multiple members are reporting errors, each will create a unique set per member, with the index n incrementing to n+1, n+2, and so on.
This sample shows five error lines, but the design allows for a variable amount.
Example 3: REXX and EDQ Output
The following example is from an actual run. The sequence is arranged to match the description above. The indentation is intended to show the cause and effect relationship where the creation of one variable can result in more variables. REXX and EDQ output are very similar. In the case of REXX, the character string to the left of the first blank is the REXX variable name, and is followed by its value. The following are EDQ records:
IMSTYP2.CTL.IMSRC 0200000C IMSTYP2.CTL.IMSRSN 00003000
IMSTYP2.CTL.RSNMSG CSLN023I IMSTYP2.CTL.RSNTXT At least one request was successful.
IMSTYP2.CMDSECERR.SAF.IMSRC IMSTYP2.CMDSECERR.SAF.RACFRC IMSTYP2.CMDSECERR.SAF.RACFRSN IMSTYP2.CMDERR.0 1 IMSTYP2.CMDERR.1.0 5
IMSTYP2.CMDERR.1.TYP UNKWN IMSTYP2.CMDERR.1.NAME IMST IMSTYP2.CMDERR.1.IMSRC 02000010 IMSTYP2.CMDERR.1.IMSRSN 00004008 IMSTYP2.CMDERR.1.RSNTXT MU is not registered
Example 4: VERBOSE(YES) Output
The following is an example of the granulated tokenization when the VERBOSE(YES) option is selected. Each word on every response line results in a unique REXX variable.
<?xml version="1.0"?>
IMS2.XML = xml version="1.0" <!DOCTYPE imsout SYSTEM "imsout.dtd"> IMS2.DOC = DOCTYPE imsout SYSTEM "imsout.dtd" <omname>OM2OM </omname> IMS2.CTL.OMNAME = OM2OM <xmlvsn>20 </xmlvsn> IMS2.CTL.XMLVSN = 20 <statime>2008.268 18:56:31.852817</statime> IMS2.CTL.STATIME = 2008.268 18:56:31.852817 <stotime>2008.268 18:56:31.853002</stotime> IMS2.CTL.STOTIME = 2008.268 18:56:31.853002 <rc>0200000C</rc> IMS2.CTL.IMSRC = 0200000C <rsn>00003000</rsn> IMS2.CTL.IMSRSN = 00003000 <rsnmsg>CSLN023I</rsnmsg> IMS2.CTL.RSNMSG = CSLN023I <cmderr> <mbr name="SVPA "> IMS2.CMDERR.1.NAME = SVPA <typ>UNKWN </typ> IMS2.CMDERR.1.TYP = UNKWN <rc>02000010</rc> IMS2.CMDERR.1.IMSRC = 02000010 <rsn>00004004</rsn> IMS2.CMDERR.1.IMSRSN = 00004004 </mbr> IMS2.CMDERR.1.0 = 3 <userid>NESAS01 </userid> IMS2.CMD.USERID = NESAS01 <verb>QRY </verb> IMS2.CMD.VERB = QRY <kwd>IMSPLEX </kwd IMS2.CMD.KWD = IMSPLEX <input>QUERY IMSPLEX </input> IMS2.CMD.INPUT = QUERY IMSPLEX <hdr slbl="IMSPLX" llbl="IMSplex" scope="LCL" sort="A" key="1" scroll="NO" len="8" dtype="CHAR" align="left" /> IMS2.HDR.1.SLBL = IMSPLX IMS2.HDR.1.LLBL = IMSplex IMS2.HDR.1.SCOPE = LCL IMS2.HDR.1.SORT = A IMS2.HDR.1.KEY = 1 IMS2.HDR.1.SCROLL = NO IMS2.HDR.1.LEN = 8 IMS2.HDR.1.DTYPE = CHAR IMS2.HDR.1.ALIGN = left <hdr slbl="MBR" llbl="MbrName" scope="LCL" sort="N" key="0" scroll="YES" len="8" dtype="CHAR" align="left" /> IMS2.HDR.2.SLBL = MBR IMS2.HDR.2.LLBL = MbrName IMS2.HDR.2.SCOPE = LCL IMS2.HDR.2.SORT = N IMS2.HDR.2.KEY = 0 IMS2.HDR.2.SCROLL = YES IMS2.HDR.2.LEN = 8 IMS2.HDR.2.DTYPE = CHAR IMS2.HDR.2.ALIGN = left <hdr slbl="CC" llbl="CC" scope="LCL" sort="N" key="0" scroll="YES" len="4" dtype="INT" align="right" /> IMS2.HDR.3.SLBL = CC IMS2.HDR.3.LLBL = CC IMS2.HDR.3.SCOPE = LCL IMS2.HDR.3.SORT = N IMS2.HDR.3.KEY = 0 IMS2.HDR.3.SCROLL = YES IMS2.HDR.3.LEN = 4 IMS2.HDR.3.DTYPE = INT IMS2.HDR.3.ALIGN = right <hdr slbl="IMSMBR" llbl="Member" scope="LCL" sort="N" key="0" scroll="NO" len="8" dtype="CHAR" align="left" /> IMS2.HDR.4.SLBL = IMSMBR IMS2.HDR.4.LLBL = Member IMS2.HDR.4.SCOPE = LCL IMS2.HDR.4.SORT = N IMS2.HDR.4.KEY = 0 IMS2.HDR.4.SCROLL = NO IMS2.HDR.4.LEN = 8 IMS2.HDR.4.DTYPE = CHAR IMS2.HDR.4.ALIGN = left </cmdrsphdr> IMS2.HDR.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(SVD9CQS) CC( 0)</rsp> IMS2.RSP.1.1 = IMSPLX(CSLPLEX1) IMS2.RSP.1.2 = MBR(OM2OM) IMS2.RSP.1.3 = IMSMBR(SVD9CQS) IMS2.RSP.1.4 = CC( 0) IMS2.RSP.1.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(SCI1SC) CC( 0)</rsp> IMS2.RSP.2.1 = IMSPLX(CSLPLEX1) IMS2.RSP.2.2 = MBR(OM2OM) IMS2.RSP.2.3 = IMSMBR(SCI1SC) IMS2.RSP.2.4 = CC( 0) IMS2.RSP.2.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(SVPA) CC( 0)</rsp> IMS2.RSP.3.1 = IMSPLX(CSLPLEX1) IMS2.RSP.3.2 = MBR(OM2OM) IMS2.RSP.3.3 = IMSMBR(SVPA) IMS2.RSP.3.4 = CC( 0) IMS2.RSP.3.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(SCI2SC) CC( 0)</rsp> IMS2.RSP.4.1 = IMSPLX(CSLPLEX1) IMS2.RSP.4.2 = MBR(OM2OM) IMS2.RSP.4.3 = IMSMBR(SCI2SC) IMS2.RSP.4.4 = CC( 0) IMS2.RSP.4.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(OM2OM) CC( 0)</rsp> IMS2.RSP.5.1 = IMSPLX(CSLPLEX1) IMS2.RSP.5.2 = MBR(OM2OM) IMS2.RSP.5.3 = IMSMBR(OM2OM) IMS2.RSP.5.4 = CC( 0) IMS2.RSP.5.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(RM2RM) CC( 0)</rsp> IMS2.RSP.6.1 = IMSPLX(CSLPLEX1) IMS2.RSP.6.2 = MBR(OM2OM) IMS2.RSP.6.3 = IMSMBR(RM2RM) IMS2.RSP.6.4 = CC( 0) IMS2.RSP.6.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(SVD10HWS) CC( 0)</rsp> IMS2.RSP.7.1 = IMSPLX(CSLPLEX1) IMS2.RSP.7.2 = MBR(OM2OM) IMS2.RSP.7.3 = IMSMBR(SVD10HWS) IMS2.RSP.7.4 = CC( 0) IMS2.RSP.7.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(SVP9) CC( 0)</rsp> IMS2.RSP.8.1 = IMSPLX(CSLPLEX1) IMS2.RSP.8.2 = MBR(OM2OM) IMS2.RSP.8.3 = IMSMBR(SVP9) IMS2.RSP.8.4 = CC( 0) IMS2.RSP.8.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR() CC( 0)</rsp> IMS2.RSP.9.1 = IMSPLX(CSLPLEX1) IMS2.RSP.9.2 = MBR(OM2OM) IMS2.RSP.9.3 = IMSMBR() IMS2.RSP.9.4 = CC( 0) IMS2.RSP.9.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(SVD91HWS) CC( 0)</rsp> IMS2.RSP.10.1 = IMSPLX(CSLPLEX1) IMS2.RSP.10.2 = MBR(OM2OM) IMS2.RSP.10.3 = IMSMBR(SVD91HWS) IMS2.RSP.10.4 = CC( 0) IMS2.RSP.10.0 = 4 <rsp>IMSPLX(CSLPLEX1) MBR(OM2OM) IMSMBR(SVDACQS) CC( 0)</rsp> IMS2.RSP.11.1 = IMSPLX(CSLPLEX1) IMS2.RSP.11.2 = MBR(OM2OM) IMS2.RSP.11.3 = IMSMBR(SVDACQS) IMS2.RSP.11.4 = CC( 0) IMS2.RSP.11.0 = 4 </cmdrspdata> IMS2.RSP.0 = 11
| Copyright © 2012 CA. All rights reserved. | Tell Technical Publications how we can improve this information |