ABM4
Explanation
An invalid request response has been received to a temporary storage PUT or PUTQ request issued by BMS. The data passed to the temporary storage program has an invalid length.
System action
The transaction is abnormally terminated with a CICS transaction dump.
User response
If you need further assistance from IBM to resolve this problem, see Working with IBM to solve your problem for guidance on how to proceed.
Determine from the trace table whether the abend occurred in DFHMCP or DFHTPP.
Check the length of the appropriate area.
If the MCR length is invalid, possible reasons are:
-
The title record specified in the TITLE option on a BMS ROUTE request has an invalid format, that is, it does not begin with a halfword length field or is more than 64 characters.
-
The message is being routed to more terminals than intended. OSPTTCNT is very large, for example, if LIST=ALL is specified on a ROUTE request and there are a large number of terminals in the TCT.
If the page buffer length is too large, this may be because more data than intended is being built into the page. If the page buffer length is greater than the length of the storage area indicated in the preceding storage accounting area, an error has occurred in page or text building, and the page buffer extends beyond the area allocated to it (that is, storage violation).
Problem determination
Abend in DFHMCP (see Analysis)
The OSPWA (output services work area) is in user storage and is printed in a transaction dump. It is addressed by register 9 at the time of the abend. Relevant fields are:
OSPTITLE
OSPTTCNT
OSPPLTI
OSPTOTPG
The message control record (MCR) is an area of user storage obtained by BMS. It is addressed by register 8 at the time of the abend. The first 8 bytes contain storage accounting information. MCRLLBB contains the length of the MCR (halfword) abend in DFHTPP.
The page buffer is addressed by register 7 at the time of the abend. It contains storage accounting fields in the first 8 bytes and a halfword length at offset 8 (TSIOAVRL).
In both cases, the temporary storage use map (DFHTSMAP) is addressed from CSATSATA. TSMAPCOM contains the number of available bytes in a control interval on the temporary storage data set.
Analysis: If the temporary storage request preceding the abend is a DFHTS PUT, the abend occurred in DFHMCP. If the temporary storage request preceding the abend is a DFHTS PUTQ, the abend occurred in DFHTPP. If the abend occurred in DFHMCP, DFHMCP is attempting to put the message control record to temporary storage. Check the length of the MCR (MCRLLBB). It may be negative.
The length of the MCR is calculated by code following label MCPNODDS and is:
28 + 21 * OSPTTCNT + (length of title record)
+ (space for page/LDC table,
if needed)
The address of the title record is at OSPTITLE and the length is contained in the first halfword. Space for the page/LDC table is required if OSPPLT1 is nonzero, which should occur only for messages routed to LDC devices (3600, 3650, 3767, 3770, 3790). The number of entries is in OSPTOTPG. 2 bytes are required per entry.
If the abend occurred in DFHTPP, BMS is attempting to add a page to the temporary storage queue, and the page buffer will not fit in the control interval. TSIOAVRL contains the length of the page buffer.
For messages directed to 3270 devices, the page buffer consists of a 3270 data stream with a 4-byte page control area following it (a 3270 data stream may be larger than the number of characters available on the screen, particularly if extended 3270 attributes are used). For messages directed to other devices, the page buffer consists of a message formatted with NL characters, a 4-byte page control area following it. The length in TSIOAVRL should be less than the length in the preceding storage accounting area, otherwise an error has occurred in constructing the page, possibly in prior BMS requests.
In either of the above cases, if the length of the area being output appears valid, it is necessary to increase the control interval size for the temporary storage data set.
Register Label Description
DFHMCP
R8=@MCR MCPMCRTS The MCR is too long or
has invalid length ($4).
DFHTPP
R7=@pgbuf TPNOPGL The page buffer is
or too large.
TPNODDS
Module
DFHMCP, DFHTPPApplicable releases in Version 6
- beta
- 6.3
- 6.2
- 6.1