ISPF controller and processor task abends are controlled by STAE
and STAI exit routines and by ISPF execution modes set using the ISPSTART
TEST parameters.
Under normal conditions (that is, when processor and controller
dumps have not been requested by specifying the ISPSTART TEST command):
- When a processor task abends:
- No dump is taken.
- The controller reattaches the processor main drive (ISPPMD).
- The primary option menu is redisplayed for that logical screen.
- When the controller task abends:
- ISPF terminates with *** ISPF MAIN TASK ABEND *** message.
- Control returns to TSO.
- Pressing Enter causes a dump to be taken if a dump data set has
been allocated.
The controller and processor tasks issue the ABEND system service
and allow dumps under certain situations. The ISPF modules that issue
ABENDs and their associated codes and reasons are listed below:
- Abend code 0C1 in various common ISPF subroutines
- In several ISPF modules, an invalid operation code of (X'00')
is executed to force an abend at the point that an unexpected condition
occurs. Contact IBM® support
if this condition occurs within an ISPF module.
- Abend code 0C4 in ISPDVCGT, ISPDVCPT, or ISPDVCFD
- These abends are often caused by mismatched VDEFINE and VDELETE
services in a user's program. The VDEFINE service gives ISPF addressability
to user storage. This storage is used by variable services any time
the variable that has been established by the VDEFINE service is referenced.
If this storage is released back to the system, an 0C4 abend may occur
depending on whether the storage is still accessible. Here are two
common scenarios that often show these abends:
- A program establishes a variable in a called subroutine using
the VDEFINE service and subsequently uses an ISPF service that references
this variable in another routine. If the called subroutine was dynamically
loaded and therefore released its storage, an 0C4 abend could occur
when the subroutine references a VDEFINEd variable.
- A program establishes a variable in a called subroutine using
the VDEFINE service and then calls another program without using the
SELECT service. Then the called program VDEFINEs a variable with the
same name, but does not VDELETE it on exit. If the calling program
references that variable after the called program returns control
to it, an 0C4 abend can occur. Since a VDELETE has not been done,
ISPF services still reference the variable VDEFINEd by the called
program.
If the program intent is to use the same variable in the
main and called routines, the variable should be VDEFINEd only in
the main routine. If the program intent to isolate a variable to be
used only in the routine in which it is VDEFINEd, then the program
should also VDELETE the variable before it ends. To diagnose whether
the user application has this problem, a function trace on VDEFINE,
VDELETE, and the SELECT services (Option 7.7.1) is very helpful.
- Abend codes 111 or 222
- To produce these abends, the user must be in test mode and request
processor dumps by entering one of the following commands on the ISPF
command line. With exception of the user completion code, both commands
function in the same manner.
- ABEND
- Terminates ISPF with user completion code 111.
- CRASH
- Terminates ISPF with user completion code 222.
- Abend code 908
- ZISPFRC value was not valid
- Abend code 920
- ISPSTART command syntax was not valid
- Abend code 950
- An ISPF session running on behalf of a z/OS® client had to be abnormally terminated.
One of the following write-to-operator (WTO) messages will accompany
the user abend:
- ISPWB000
- Client requested ISPF session initialization
Userid: xxxxxxx ASIDX: nnnn
Message Queue: nnnnnnnnnn CCSID: nnnnn
This message does not indicate a problem but is issued
when a request is received to start an ISPF session on behalf of a
client. This informational message shows the user ID that the address
space will run under, the ID of the TSO address space, the ID of the z/OS UNIX message
queue used to exchange messages between TSO/ISPF and the client, and
the CCSID used when converting message between EBCDIC and Unicode.
- ISPWB001
- Request received from client to force termination. The ISPF session
is abnormally terminated. Userid: xxxxxxx ASIDX: xxxx
This
operator message is issued when ISPF receives a request from a client
to force the termination of the ISPF session for a user. The message
shows the TSO ID of the user and the ID of the TSO address space.
- ISPWB002
- Call to BPX1QSN to send a message to the queue failed. Return
code: 'xxxx'X Reason code: 'xxxx'X
The ISPF session is
abnormally terminated.
This operator message is issued when
a call to z/OS UNIX service BPX1QSN to send panel JSON to the
client via a z/OS UNIX message queue fails. The message shows
the return and reason code from BPX1QSN.
- ISPWB003
- Call to BPX1QRC to read a message from the queue failed. Return
code: 'xxxx'X Reason code: 'xxxx'X
The ISPF session is
abnormally terminated.
This operator message is issued when
a call to z/OS UNIX service BPX1QRC to receive response JSON
from the client via a z/OS UNIX message queue fails. The message
shows the return and reason code from BPX1QRC.
- ISPWB004
- Call to BPX1QRC returned a message of length zero. Return
code: 'xxxx'X Reason code: 'xxxx'X
The ISPF session is
abnormally terminated.
This operator message is issued when
a call to z/OS UNIX service BPX1QRC to receive response JSON
from the client returns a message with a length of zero. The message
shows the return and reason code from BPX1QRC.
- Abend code 985
- An attempt was made to start a GUI in batch mode, but no workstation
connection was made.
- Abend code 987
- An attempt was made to start GUI with GUISCRW or GUISCRD and the
GUI initialization failed.
- Abend code 988
- Invalid TSO environment. See z/OS V2R2 ISPF Planning and Customizing for
the proper TSO version.
- Abend code 989
- The ISPF C/S component window was closed while still running ISPF
in GUI mode
- Abend code 990
- An error occurred running in batch mode. If ZISPFRC has not been
set previously, and ISPF encounters a severe error that terminates
the product, then 990 is set.
- Abend code 995
- Configuration table is not compatible with current ISPF release.
Configuration table must be release 4.8 or later.
- Abend code 996 (or X'3E5')
- ISPF was not able to load the terminal translate table during
initialization. Check that the load module defined in the configuration
table is available in the ISPLLIB or MVS™ load
library search concatenation. The value is stored in the user's profile
data set, so a reset may be required to load the correct value.
- Abend code 997 (or X'3E5')
- A TPUT returned a return code other than 0 or 8. A message is
displayed and an attempt is made to redisplay the full screen. If
the redisplay fails twice, this abend is issued.
- Abend code 998 (or X'3E6')
- An ISPF severe error that occurs while not in CONTROL ERRORS RETURN
mode and before ISPF is fully initialized. ISPF is considered to be
fully initialized when the Enter key on the primary option menu has
been processed without a severe error occurring.
- Abend code 999 (or X'3E7')
- This abend is issued for the following reasons:
- No function pool is established for a command processor.
For
example, a command processor that uses ISPF services is invoked using
option 6 or SELECT CMD, but the command processor does not have a
function pool. The user needs to have an entry for the command processor
in the ISPTCM with the X'40' flag set on. The X'40' flag indicates
that the command requires a function pool. See z/OS V2R2 ISPF Planning and Customizing for
more information on customizing the ISPTCM.
- An error occurs while another error is already being processed.
ISPF issues the abend code 999 in this case to protect against
an infinite loop.
- An error occurred during ISPF initialization.
For example:
- An I/O error occurred due to ISPF library allocations such as
ISPSLIB, ISPPLIB, ISPMLIB, and so forth, containing inconsistent or
incorrect DCB attributes.
- An ISPF library allocation does not contain the required ISPF
libraries in its concatenation. For example, the ISPMLIB contains
user product libraries but not ISPF libraries.