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.
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. The return code will be returned at the front end in MMPRETCD. | |
08 | 0010 | — | The end of a CI is out of its extent. |
0014 | — | Extent not found. | |
0018 | — | Extent not active. | |
0420 | — | Overlapping extents. | |
0424 | — | Invalid ending RBA. | |
0428 | — | Block size is too large for the device. | |
042C | — | Inconsistent CI sizes. | |
0C | 0004 | — | Two writes to the same RBA. |
0004 | 18 | The master 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 | 19 | The master MMIB was not passed. | |
000C | — | An MMRE specifies multiple CIs to be sorted. | |
0010 | — | MMRE specifies output but MMIB specifies input only. | |
0010 | 17 | MMIB specifies READ only, on an update write request. | |
0016 | 02 | Format write requested for replicated indexes. A replicated index format write request is not valid. | |
0016 | 03 | Format write requested for replicated indexes. A replicated index format write request is not valid. | |
0016 | 15 | Format write requested for replicated indexes. A replicated index format write request is not valid. | |
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 | — | Insufficient storage for channel program because of media manager storage constraints, or invalid request element—starting RBA is greater than ending RBA specified in MMRE for MMCALL OP=FORMAT. | |
0028 | 15 | MMCALL OP=WRITE was specified with format write and VOLATILE=YES. | |
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. | |
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. | |
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. |
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 | 0C | Hardware pad errors, detected on extended format data set only. | |
0050 | 11 | Hardware errors caused records to be skipped for the read I/O. | |
0050 | 0C | RBN errors detected in MMRE chain. | |
0410 | 40 | AOM failed to obtain volatile token because of AOM/hardware errors. | |
14 | 0030 | — | Error cannot be determined. |
0034 | — | Indeterminate error—I/O has been started. |
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) |
00 | ICYFRR |
01 | ICYRDWR |
02 | ICYFW |
03 | ICYPFMT |
04 | ICYRBA |
05 | ICYCCHHR |
06 | ICYSTOR |
07 | ICYSORT |
08 | ICYBLIST |
09 | ICYELE (Event Listen Exit) |
0A | ICYBLD31 |
0B | ICYPF31 |
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 |
17 | ICYPIO31 |
18 | ICYREP31 |
19 | ICYRCD0 |
1A | ICYEXIT |
1B | ICYTRACE |
1C | ICYBLD64 |
1D | ICYPF64 |
1E | ICYPIO64 |
1F | ICYREP64 |
20 | ICYBLDRE |
3A | ICYDIE, first entry from IOS |
40 | ICYINIT |
41 | ICYIEDB |
42 | ICYILPMB |