Programming notes for section 2.1

Notes in this section pertain to the following fields, which are in section 2.1 of the ADSR data area.
ADSRC      C'SR21' Section 2.1 Identifier          (RC)
ADSRCRL    Architectural Level of Record           (RC)
ADSRCID    Component identifier
ADSRFLC    Component Status Flags
ADSRFLC1   Non-IBM program flag                    (RC)
ADSRLVL    Component Release Level                 (RC)
ADSRPTF    Service Level
ADSRPID    PID number                              (RC)
ADSRPIDL   PID release level                       (RC)
ADSRCDSC   Text description
ADSRRET    Return Code                             (RS)
ADSRREA    Reason Code                             (RS)
ADSRPRID   Problem Identifier
ADSRID     Subsystem identifier
Note:
  1. This section has a fixed length of 100 bytes, and cannot be truncated. Optional fields (not marked with RC, RS, or RA) will appear as zero if no values are provided.
  2. ADSRCID is the component ID of the application that incurred the error.

    Under some circumstances, there can be more than one component ID involved. For ADSRCID, select the component ID that is most indicative of the source of the error. The default is the component ID of the detecting program. In no case should the component ID represent a program that only administratively handles the symptom record. Additional and clarifying data (such as, other component ID involved) is optional, and may be placed in optional entries such as ADSRCDSC of section 2.1, section 4, or section 5.

    For example: if component A receives a program check; control is taken by component B, which is the program check handler. Component C provides a service to various programs by issuing SYMREC for them. In this case, the component ID of A should be given. Component B is an error handler that is unrelated to the source of the error. Component C is only an administrator. Note that, in this example, it was possible for B to know A was the program in control and the source of the program check. This precise definition is not always possible. B is the detector, and the true source of the symptom record. If the identity of A was unknown, then B would supply, as a default, its own component ID.

    ADSRCID is not a required field in this section, although it is required in section 3 after the PIDS/ prefix of the symptom string. Repeating this value in section 2.1 is desirable but not required. Where the component ID is not given in section 2.1, this field must contain zeroes.

    ADSRPID is the program identification number assigned to the program that incurred the error. ADSRPID must be provided only by IBM® programs that do not have an assigned component ID. Therefore, ADSRCID contains hex zeroes if ADSRPID is provided.

  3. ADSRLVL is the release level of the component indicated in ADSRCID.
  4. ADSRPIDL is the release level of the program designated by ADSRPID, and it should be formatted using the characters, V, R, and M as separators, where V, R, and M represent the version, release, and modification level respectively. For example, V1R21bbbbb is Version 1 Release 2.1 without any modification. No punctuation can appear in this field, and ADSRPIDL must be provided only when ADSRPID is provided.
  5. ADSRPTF is the service level. It may differ from ADSRLVL because the program may be at a higher level than the release. ADSRPTF can contain any number indicative of the service level. For example, a PTF, FMID, APAR number, or user modification number. This field is not required, but it should be provided if possible.
  6. ADSRCDSC is a 32-byte area that contains text, and it is only provided at the discretion of the reporting component. It provides clarifying information.
  7. ADSRREA is the reason code, and ADSRRET is the return code from the execution of SYMREC. SYMREC places these values in registers 0 and 15 and in these two fields as part of its execution. The fields are right justified, and identical to the contents of registers 0 and 15.
  8. ADSRCRL is the architectural level of the record, which is always 10. Note that ADSRARID (section 2) is the architectural level of the SYMREC service.
  9. ADSRPRID is a value that can be used to associate the symptom record with other symptom records. This value must be in EBCDIC, but it is not otherwise restricted.
  10. ADSRNIBM is a flag indicating that a non-IBM program originated the symptom record.
  11. ADSRSSID is the name of a subsystem. The primary purpose of this field is to allow subsystems to intercept the symptom record from programs that run on the subsystem. They may then add their own identification in this field as well as additional data in sections 4 and 5. The subsystem can then pass the symptom record to the system via SYMREC. A zero value is interpreted as no name.