Instrumentation facility communications area (IFCA)
A monitor program's instrumentation facility communication area (IFCA) is a communications area between the monitor program and IFI. The IFCA contains information about the success of the call in its return code and reason code fields. The IFCA is a required parameter on all IFI requests.
The monitor program is responsible for allocating storage for the IFCA and initializing it. The IFCA must be initialized to binary zeros and the eye catcher, 4-byte owner field, and length field must be set by the monitor program. Failure to properly initialize the IFCA results in denying any IFI requests.
The monitor program is also responsible for checking the IFCA return code and reason code fields to determine the status of the request.
The IFCA fields are described in the following table.
| Name | Hex offset | Data type | Description |
|---|---|---|---|
| IFCALEN | 0 | Hex, 2 bytes | Length of IFCA. |
| IFCAFLGS | 2 | Hex, 1 byte | Processing flags.
|
| 3 | Hex, 1 byte | Reserved. | |
| IFCAID | 4 | Character, 4 bytes | Eye catcher for block, IFCA. |
| IFCAOWNR | 8 | Character, 4 bytes | Owner field, provided by the monitor program. This value is used to establish ownership of an OPn destination and to verify that a requester can obtain data from the OPn destination. This value is not the same as the owner ID of a plan. |
| IFCARC1 | C | 4-byte signed integer | Return code for the IFI
call. Binary zero indicates a successful call. For information about other return codes, see X'E6......' codes. For a return code of 8 from a COMMAND request, the IFCAR0 and IFCAR15 values contain additional information. |
| IFCARC2 | 10 | 4-byte signed integer | Reason code for the IFI call. Binary zero indicates a successful call. For information about other reason codes, see X'E6......' codes. |
| IFCABM | 14 | 4-byte signed integer | Number of bytes moved to the return area. A non-zero value in this field indicates information was returned from the call. Only complete records are moved to the monitor program area. |
| IFCABNM | 18 | 4-byte signed integer | Number of bytes that did not fit in the return area and still remain in the buffer. Another READA request retrieves that data. Certain IFI requests return a known quantity of information. Other requests terminate when the return area is full. |
| 1C | 4-byte signed integer | Reserved. | |
| IFCARLC | 20 | 4-byte signed integer | Indicates the number of records lost prior to a READA call. Records are lost when the OP buffer storage is exhausted before the contents of the buffer are transferred to the application program via an IFI READA request. Records that do not fit in the OP buffer are not written and are counted as records lost. |
| IFCAOPN | 24 | Character, 4 bytes | Destination name used on a READA request. This field identifies the buffer requested, and is required on a READA request. Your monitor program must set this field. The instrumentation facility fills in this field on START TRACE to an OPn destination from an monitor program. If your monitor program started multiple OPn destination traces, the first one is placed in this field. If your monitor program did not start an OPn destination trace, the field is not modified. The OPn destination and owner ID are used on subsequent READA calls to find the asynchronous buffer. |
| IFCAOPNL | 28 | 2-byte signed integer | Length of the OPn destinations started. On any command entered by IFI, the value is set to X'0004'. If an OPn destination is started, the length is incremented to include all OPn destinations started. |
| 2A | 2-byte signed integer | Reserved. | |
| IFCAOPNR | 2C | Character, 8 fields of 4 bytes each | Space to return 8 OPn destination values. |
| IFCATNOL | 4C | 2-byte signed integer | Length of the trace numbers plus 4. On any command entered by IFI the value is set to X'0004'. If a trace is started, the length is incremented to include all trace numbers started. |
| 4E | 2-byte signed integer | Reserved. | |
| IFCATNOR | 50 | Character, 8 fields of 2 bytes each. | Space to hold up to eight EBCDIC trace numbers that were started. The trace number is required if the MODIFY TRACE command is used on a subsequent call. |
| IFCADL | 60 | Hex, 2 bytes | Length of diagnostic information. |
| ICFADDF | 62 | Hex, 2 bytes | Diagnostic
information level: X'8000' The diagnostic area is for Db2 11 or later. |
| IFCADD | 64 | Character, 80 bytes | Diagnostic information.
|
| IFCAGRSN | 98 | Four-byte signed integer | Reason code for the situation in which an IFI calls requests data from members of a data sharing group, and not all the data is returned from group members. |
| IFCAGBM | 9C | Four-byte signed integer | Total length of data that was returned from other data sharing group members and fit in the return area. |
| IFCAGBNM | A0 | Four-byte signed integer | Total length of data that was returned from other data sharing group members and did not fit in the return area. |
| IFCADMBR | A4 | Character, 8 bytes | Name of a single data sharing group member on which an IFI request is to be executed. Otherwise, this field is blank. If this field contains a member name, Db2 ignores field IFCAGLBL. |
| IFCARMBR | AC | Character, 8 bytes | Name of the data sharing group member from which data is being returned. Db2 sets this field in each copy of the IFCA that it places in the return area, not in the IFCA of the application that makes the IFI request. |