Non-REXX user exit buffered data format

The information that is provided in this section is only applicable to user exits that are not written in REXX.

If the data length for certain character fields exceed the maximum field size, then Z Abend Investigator instead allocates a buffer large enough for all of the field data, and provide information about the buffer in three fullwords starting at relative offset zero of the field as follows:

The data fields that this buffered format is applicable to are identified separately in the data area descriptions.

The Analysis Control user exit cannot free any buffer that is allocated by Z Abend Investigator for the field. Instead, if the field or buffer size is inadequate, the exit can allocate its own buffer and place the address and length information in the three fullwords at relative offset zero of this field. Z Abend Investigator is not dependent on any original buffer address to be retained for later release of allocated storage.

Freeing of buffers that were allocated by user exits is the responsibility of the user. This freeing can be achieved be utilizing the ENV.USER_1 or ENV.USER_2 fields to point to an area of storage containing information about any buffer allocations made. A later exit, such as the End Processing user exit, can then be used to perform the release of allocated storage.

For REXX user exits, Z Abend Investigator automatically handles the allocation and freeing of any necessary buffers to accommodate data lengths in excess of the field size.