Explanation
Global resource serialization encountered an unexpected
error during the processing of an ENQ macro instruction.
Register
15 may contain a reason code associated with this error:
- Code
- Explanation
- xxxx0000
- General module failure in ENQ processing.
- xxxx0001
An ISGENQ REQUEST=OBTAIN, RESERVEVOLUME=YES, SYNCHRES=YES,
request resulted in device I/O error when performing the reserve device
state transitioning. There is something wrong with the device rather
than a GRS problem.
Note that for ISGENQ SYNCHRES=SYSTEM RESERVEVOLUME=YES
requests, the result of the device state transitioning is not provided
back to the user.
- xxxx0002
- RESERVE start processing failed.
- xxxx0003
- Synchronous RESERVE done processing failed.
- xxxx0004
- ENQ processing could not obtain storage in the home address space.
- xxxx0005
- ENQ processing could not obtain storage in the common area.
- xxxx0006
- ENQ processing could not obtain the ALET of the caller's primary
address space.
- xxxx0007
- ENQ processing could not obtain a DSQE to suspend a request for
a RNL change.
- xxxx0008
- ENQ processing could not obtain the ALET of the GRS address space.
- xxxx0009
- ENQ processing could not obtain storage in the primary address
space.
- xxxx00FE
- Abend in dynamic exit.
- xxxx00FF
- RESERVE processing detected an overflow when updating the reserve
count.
- xxxxyyyy
- The reason code could also be associated with an ISGENQ Request=Obtain
or Request=Change. Note that the ABEND reason codes for ISGENQ correspond
to the same reason codes listed in the Return and Reason Codes section
of the ISGENQ macro in z/OS MVS Programming: Authorized Assembler Services Reference EDT-IXG.
Additionally, there are 738 abends that occur
without reason codes. These include:
- If there are ENQs on resources and the number of jobs suspended
exceeds 12,000 on a system during a resource name list (RNL) change.
When the number reaches 800, the system cancels the RNL change.
- If there is a control block corruption in the GRS address space.
System action
The system writes a logrec data set error record
and an ABEND dump.
System programmer response
If the problem persists, search problem
reporting data bases for a fix for the problem. If no fix exists,
contact the IBM® Support Center.
Provide the logrec data set error record and the ABEND dump. If abend X'738' with
reason code X'000000FF' persists, issue D GRS,DEV=xxxx (xxxx
is the device number in hexadecimal) command to determine what are
the reserve requests on the device.
For reason code
X'00FF',
do the following:
- Obtain the address of the parameter list from register 1 in the
UNIQUE-3 column of the SVC X'30' or SVC X'38' entry
in the system trace.
- Check the parameter list against the SVC X'30' or SVC X'38' mapping.
When analyzing the parameter list, remember that the unit control
block (UCB) pointer, if present, is the address of the field that
contains the address of the UCB.
The UCB mapping will contain the device number that had
more than 255 simultaneous RESERVE requests outstanding.
For
all other reason codes, if the problem persists, search the problem
reporting databases for a fix for the problem. If no fix exists, contact
the IBM Support Center, providing
the logrec data set error record and the ABEND dump.
Programmer response
Do the following:
- Obtain the address of the ENQ parameter list from register 1 in
the UNIQUE-3 column of the SVC X'38' entry in the system
trace.
- Check the parameter list against the SVC X'38' mapping.
When analyzing the parameter list, remember that the unit control
block (UCB) pointer, if present, is the address of a field that, in
turn, contains the address of the UCB.
If the parameter list contains
incorrect data, continue diagnosis in the program that issued the
macro.
- For abend X'738' and reason code X'000000FF',
none.
- For abend X'738' and reason code X'xxxx0009',
determine or relieve the cause of the storage shortage and try the
request again.
Source
Global resource serialization