Return area

You must specify a return area on all READA, READS, and command requests.

Begin program-specific programming interface information. IFI uses the return area to return command responses, synchronous data, and asynchronous data to the monitor program. Table 1describes the return area.
Table 1. Return area
Hex offset Data type Description
0 Signed 4-byte integer The length of the return area, plus 4. This must be set by the monitor program. No limit exists for the length of READA or READS return areas.
4 Character, varying-length Db2 places as many varying-length records as it can fit into the area following the length field. The monitor program's length field is not modified by Db2. Each varying-length trace record has either a 2-byte or 4-byte length field, depending on the high-order bit. If the high-order bit is on, the length field is 4 bytes. If the high-order bit is off, the length field is 2 bytes. In this case, the third byte indicates whether the record is spanned, and the fourth byte is reserved.

After a command request, the last character in the return area is a new-line character (X'15').

The following table shows the return area for IFCID 0306.
Table 2. Return area using IFCID 0306
Hex offset Data type Description
0 Signed four-byte integer The length of the return area.
4 Character, 4 bytes The eye catcher, a constant, I306. Beginning of QW0306OF mapping.
8 Character, 128 bytes Reserved.
88 Signed four-byte integer The length of the returned data.

The destination header for data that is returned on a READA or READS request is mapped by macro DSNDQWIW or the header QW0306OF for IFCID 306 requests. Please refer to prefix.SDSNIVPD(DSNWMSGS) for the format of the trace record and its header. The size of the return area for READA calls should be as large the size specified with the BUFSIZE keyword on the START TRACE command.

Data returned on a command request consists of varying-length segments (X'xxxxrrrr' where the length is 2 bytes and the next 2 bytes are reserved), followed by the message text. More than one record can be returned. The last character in the return area is a new-line character (X'15').

The monitor program must compare the number of bytes moved (IFCABM in the IFCA) to the sum of the record lengths to determine when all records have been processed. End program-specific programming interface information.