Media Manager return codes
When the media manager is invoked and errors are found or a termination routine is called, the media manager provides a return code to identify the nature of the failure.
The media manager provides a return code in register 15. It also puts this return code in the MMPRETCD field of the MMPB.
Return codes have the following format:
ccccffss
where:
cccc is the return code
ff identifies the module that detected the error
ss is the status byte
The status byte in the ss field has the following meanings:
ss field | Error Description |
---|---|
X'00' | No error. |
X'04' | Warning. |
X'08' | Extent error. |
X'0C' | Logic error. |
X'10' | Permanent I/O error. |
X'14' | Error cannot be determined. |
In combination with one of these status bytes, return codes in the cccc field indicate the following errors (the ff field value has been listed where this value is permanent):
ss | cccc | ff | Error Description |
---|---|---|---|
00 | 0000 | — | No errors. |
04 | 0000 | — | No errors. DIE exit is receiving control in SRB mode. |
0004 | 0A | For MMCALL OP=RDWR VOLATILE=YES, device is not volatile cache or user does not have volatile cache token (MMIVCT=0). Normal I/O (without use of volatile cache) is done instead. | |
0084 | — | SYNCIO=YES specified and IO completed synchronously. User exits will not be called. MMCALL request completed successfully. | |
0105 | — | Related error. This error might set in response to an MMCALL dual logging request in an MMRELIST array entry in the field MMRELIST_RETCODE. This return code indicates that processing for the associated data set has been terminated due to a more severe error associated with the "other data set". | |
08 | 0010 | — | The end of a CI is out of its extent. |
0014 | — | Extent not found. | |
0017 | — | The MMCNVT macro was issued specifying the EDBADDR parameter which is inconsistent with the EDBADDR parameter which was specified on MMSRV CONNECT. | |
0018 | — | Extent not active. | |
001C | — | Invalid record number. Returned from MMCNVT CCHHR to indicate that either the R value is zero or greater than the number of records per track for the data set. | |
0420 | — | Overlapping extents. | |
0424 | — | Invalid ending RBA. | |
0428 | — | Block size is too large for the device. | |
042C | — | Inconsistent CI sizes. | |
0C | 0001 | — | Locate ASCB failed. |
0004 | 18 | The main MMIB was not passed, or there was no MMRE chain, or the user storage was not passed in. | |
0004 | 19 | GETMAIN Failure. | |
0008 | — | Two reads to the same buffer. | |
0008 | 19 | PURGE Failure. | |
000C | 06 | An error is detected with one of the MMIBs specified:
|
|
000C | 19 | The main MMIB was not passed. | |
000C | — | An MMRE specifies multiple CIs to be sorted. | |
0010 | — | MMRE specifies output but MMIB specifies input only. | |
0010 | 0C | Invalid return code from user exit. A return code of 8 from a user die exit is not supported when an MMIBLIST is specified. | |
0010 | 11 | Invalid return code from user exit. A return code of 8 from a user die exit is not supported when an MMIBLIST is specified. | |
0010 | 17 | MMIB specifies READ only, on an update write request. | |
0010 | — | Invalid return code from user exit. | |
0016 | 02 | Format write requested for replicated indexes. A replicated index format write request is not valid. | |
03 | |||
15 | |||
001C | — | Load real address error. Buffers not fixed. | |
001C | 02 | Extended format request not allowed. | |
001C | 03 | Extended format request not allowed. | |
0020 | — | Starting RBA not on CI boundary—preformat only. | |
0024 | 03 | MMCALL OP=FORMAT, invalid request element—starting RBA is greater than ending RBA specified in MMRE. | |
0024 | 1C | Insufficient storage for channel program because of media manager storage constraints. | |
1D | |||
1E | |||
1F | |||
0028 | 15 | MMCALL OP=WRITE was specified with format write and VOLATILE=YES. | |
002C | — | PARMADDR=64BIT is set but 64-bit buffer addresses are not indicated. BUFAD= parameter must specify VIRTUAL64, REAL64, ENCRYPT64, or READENCRYPT64 when PARMADDR=64BIT is specified. | |
0030 | 14 | No volatile cache token provided for MMCAL OP=COMMIT. Note: Volatile cache token
is ignored by OP=DISCARD.
|
|
0034 | 14 | MMIB not pointing to an EDB. | |
0034 | — | Control block invalid (possible invalid MMGRCT). | |
0038 | 14 | Error in media manager building of AOMSERV parameter list for MMCALL OP=COMMIT or OP=DISCARD. | |
003C | 14 | Error in media manager building of extent address list for MMCALL OP=COMMIT or OP=DISCARD. | |
0040 | — | The real buffer address list contains addresses that are zeros. | |
0044 | — | The real buffer address list contains addresses that are not at 4K-byte boundaries. | |
0048 | — | Real buffer address list is provided for CIs that are not n*4K bytes. | |
0050 | — | For OP=FORMAT, the calculated CCHH is outside the extent. | |
0075 | — | Data buffer encryption operation failed due to BCF error return code. | |
0076 | — | Encryption buffer decryption operation failed due to BCF error return code. | |
0080 | — | MirrorToSec=YES specified, and bypass extent serialization not specified (for example, MMSRV CONNECT,BYPEXTSER=NO specified or defaulted). | |
0100 | — | Real buffer addresses are not allowed for access to replicated index data sets. | |
0101 | — | Encryption is not supported for preformat (OP=FORMAT) or IO to replicated index data sets. | |
0102 | — | Data Set to be processed as an encrypted data set (for example, MMSRV CONNECT,BYPASSENCRYPTION=NO specified or defaulted), and MMRE is not in encryption format. | |
0104 | — | Encryption format MMRE and reserve bits set on in MMRFLAG3. | |
0105 | — | Error used only with dual logging. Used in setting MMREL_RETCODE(x). Indicates that there was an error in processing "the other" data set, and the IO to this data set might not have completed. | |
0108 | — | SYNCIO=YES specified and, and bypass extent serialization not specified (for example, MMSRV CONNECT,BYPEXTSER=NO specified or defaulted). | |
0109 | — | SYNCIO=YES not supported for format writes. | |
010A | — | SYNCIO=YES requires IO buffers be aligned on a minimum of 16 byte boundaries. | |
0111 | — | MMCALL OP=REMOVESYNCIOWRITEACCESS was requested, but zHyperLink write access has not been established. | |
0112 | — | An invalid MMIB address was specified for MMCALL OP=REMOVESYNCIOWRITEACCESS. | |
0115 | — | MMCALL OP=REMOVESYNCIOWRITEACCESS was requested and there is a concurrent establish or remove operation in progress for zHyperLink write access. | |
0117 | — | SYNCIO=YES for zHyperLink write requires MIRRORTOSEC=YES. | |
0118 | — |
MMCALL OP=REMOVESYNCIOWRITEACCESS called for a data set that was not opened for SyncIO writes. |
|
0119 | — | An internal error is detected when processing failed I/O for the Consistent Read from Secondary function. | |
011E | — | An error was detected in an input MMIBLIST structure. Either the eye catcher was bad or the number of MMIBs is invalid (only values of 1 or 2 are supported). | |
011F | — | An error was detected in an input MMRE LIST structure. Either the eye catcher was bad or the number of MMREs is not the same as the number of MMIBs in the input MMIBLIST. | |
0120 | — | An MMCALL parameter was specified which is not supported by the MMIBLIST
parameter, which is also specified. These parameters include the following:
|
|
0121 | — | Specification of a DSSB address in an MMPR when MMIBLIST parameter is specified and is not supported. | |
0122 | — | Specification of MMIBLIST with an MMPR requires an MMPR version of at least 10. | |
0123 | — | Update writes only (no preformat, no format writes, no reads) with MMIBLIST (for example, dual logging). | |
0400 | — | Getmain error for LPMB. | |
0408 | — | Insufficient storage supplied for LPMB. | |
0410 | — | Getmain error for EDB. | |
0418 | — | Insufficient storage supplied for EDB. | |
0434 | — | The parameter list is incomplete. | |
0438 | 40 | Invalid extended format request. | |
043C | 40 | Stripe number mismatch. | |
0440 | 40 | Invalid number of stripes. | |
0444 | 40 | Invalid device block specified for the extended format data set. | |
10 | 0010 | — | I/O prevented. |
0018 | — | I/O timing parameters specified in an MMPR and the I/O was posted in error with
one of the following codes:
|
|
0020 | 11 | Permanent I/O error. | |
0030 | 14 | Extent address list missing for MMCALL OP=COMMIT or OP=DISCARD. | |
0034 | 14 | Volatile cache token has become invalid—data in cache may be lost before MMCALL OP=COMMIT request occurs. | |
0038 | 14 | Invalid track format error—data set destroyed or logic error in caller of media manager. | |
003C | 14 | Unable to destage data for MMCALL OP=COMMIT. | |
0040 | 14 | MMCALL OP=COMMIT or OP=DISCARD cannot be done because control unit is not volatile cache. | |
0040 | — | Hardware pad errors, detected on extended format data set only. | |
0050 | — | Relative CI number errors detected in extended format data set suffix during read I/O. | |
0060 | — | Block number errors detected in extended format data set suffix during read I/O. | |
0078 | — | Inconsistent timestamp detected across records of a CI with more than one block per CI for an extended format data set during read I/O. | |
0410 | 40 | AOM failed to obtain volatile token because of AOM/hardware errors. | |
14 | 0030 | — | Invalid LPMB. |
0030 | — | IOSCOD = 45x. I/O request abnormally terminated because of a program check, machine check, etc, in IOS or an IOS exit with IOS recovery active. | |
0030 | — | Error cannot be determined. The Media Manager FRR routine was unexpectedly entered and it has written diagnostic records to logrec and scheduled a dump. No IO was started, and the user termination routine has not been called. | |
0034 | — | Indeterminate error. The Media Manager FRR routine was unexpectedly entered and it has written diagnostic records to logrec and scheduled a dump. At least one channel program was started. It is probable, but not certain, that the user termination routine has been or will be called. | |
0034 | 1C | Bad internal pointer detected during channel program build. The ff value indicates the detecting routine: | |
1E |
Note: The return codes '00341C14'x and '00341E14'x could also identify the "intermediate
error" described above in the case that either ICYBLD64 or ICYPIO64 unexpectedly
ABEND.
|
Note: The cccc field X'00xx' indicates MMCALL or MMCNVT requests.
The ff field of the return code identifies the module that detected the error.
ff field | Module |
---|---|
— | ICYMMSRV (Media Manager Services) |
— | ICYMSTAE (Media Manager Services) |
01 | ICYRDWR |
02 | ICYFW |
03 | ICYPFMT |
04 | ICYRBA |
05 | ICYCCHHR |
06 | ICYSTOR |
07 | ICYSORT |
08 | ICYBLIST |
0C | ICYDIE, second entry from IOS |
0D | ICYPFDIE |
0E | ICYNRM |
0F | ICYABN |
10 | ICYPFAPP |
11 | ICYPGAD |
12 | ICYPURG |
13 | ICYSCHED |
14 | ICYVCACH |
15 | ICYWRITE |
16 | ICYBMFI |
18 | ICYPIO |
19 | ICYRCD0 |
19 | ICYPIOPG |
1A | ICYEXIT |
1B | ICYTRACE |
1C | ICYBLD64 |
1D | ICYPF64 |
1E | ICYPIO64 |
1F | ICYREP64 |
20 | ICYBLDRE |
2A | ICYREMCP |
21 | ICYEXR64 |
22 | ICYCHR64 |
23 | ICYCIL64 |
24 | ICYNCRPT |
25 | ICYDCRPT |
28 | ICYESTAB |
29 | ICYREMOV |
3A | ICYDIE, first entry from IOS |
40 | ICYINIT |
41 | ICYIEDB |
42 | ICYILPMB |