z/OS Problem Determination Series - Day 14
Posted by Ralph Johnson on Thu, May 21, 2009 @ 12:00 PM
Today's discussion is related to the x22 abend codes. Up to this point, we have dealt with exception conditions that were cuased by the programmer or the person running the programmer. The x22 abends are typically caused by an outside force.
The x22 abend series is not one that seems to correlate with a single SVC that initiates these abends. If someone can make sense of how SVC 22 (MGCR/QEDIT) is related to any of these, please educate me!
The first two x22 abends that we want to discuss are S122 and S222. These abends are both initiated as a result of the master console operator, or someone via SDSF, cancelling your job. The S222 abend is a straight operator cancel command (C JOBNAME), while the S122 abend is a cancel with a DUMP command (C JOBNAME, DUMP). It is very important to remember that if you cancel your job using the first method, you will NOT receive a SYSUDUMP. You must use the second method, to get the S122 abend and the corresponding SYSUDUMP.
The S322 abend is issued when the time limit for your job has been exceeded. The system programmer at your shop sets artificial limits by JOBCLASS and other criteria in the JES paramters and SMF exit on the maximum CPU time allowed by your program. Therefore, we have to choose a JOBCLASS to correspond with our anticipated CPU usage. If we exceed this value, due to a program error that results in a loop, our job is cancelled with the S322 abend. This is done to preserve the integrity of the other users, jobs, and workload running on z/OS - not to punish you. Some shops let you override this value in your JCL, allowing you to
alter the value without making a change to the system configuration.
The S522 abend is caused when your job has been waiting longer than a preset time. In most systems this is 15 minutes, but I have seen it as high as an hour. The most common occurrence of the S522 abend it a TSO timeout. If you don't hit enter in TSO within 15 minutes, you are logged off automatically to free up resources. Another common, although I haven't used a real tape drive in quite some time, is the MOUNT for your tape on a tape drive by the tape operator. If the tape is not mounted within 15 minutes, your job is cancelled.
The S722 abend is generated when the output limit is exceeded by your job. For instance, if you are generating a report and your program starts looping you will ultimately receive this abend if limits are in place. Some shops let you override this value in your JCL, allowing you to alter the value without making a change to the system configuration.
The S822 abend occurs when the REGION requested by your job is not available to the JES initiator. If the private area size (where your job runs) is 8-10MB below the line, and your job requests 12MB REGION, you will receive this error. The typical solution is to make sure your job can run above the line (where you have close to 2GB of REGION available. The other alternative is to lowere your REGION request to the 8-10MB range that is avalable on your system.
A SA22 abend occurs when the master console operator or system programmer has to FORCE your job out of the system. Most likely a CANCEL command was issued and the operating system couldn't get rid of your job. There is usually a system problem when an application program cannot be removed via the CANCEL command. Other possibilities include an operator reply that wasn't responded to, or a system software problem. It is usually good to get a standalone dump (dump the entire operating system) when this occurs, and have IBM review the dump.
The remaining x22 abends are rare and there is not a high liklihood that you will ever see any of these. If you know of one that wasn't mentioned, let me know. Always, you can go to IBM's LookAt web page to get further information.
Tomorrow, we will wrap up the z/OS Problem Determination (Introduction) Series. There are still a few common abends that didn't fit into any of the groups we discussed this week.