Pages

JCL ABENDS

 

SOC1-0C1 - Operation Exception

The current machine instruction was invalid

Subscript error.

AMODE is set as 24, but a branch was attempted to a 31-bit or (on z/OS) a 64-bit address.

Tried to read a file that was not open.

Misspelled DDNAME.

Error in parameters passed to subroutines. Calling a program and the program was not included during link edit. 

Missing DD card followed by attempted I/O to same file.

Recording mode was wrong, or density was incorrect.

Bad load module, possible bad object deck. Executing a program with an unresolved external reference. 

Calling a program and the program was not included during link edit. 

Mixing compile options RES and NORES in different modules.

An uncontrolled loop moved data on top of instructions. 

COBOL – Subroutine prog ID was the same as the entry name tried to call within COBOL sort I/O procedure.

COBOL – Tried to call a subroutine which could not be found.

COBOL – Incomplete DCB for SORTIN file.

COBOL – Using sort verb, DDNAME was not SORTOUT when the “giving” option was used.

COBOL – Executing sort-using after opening SORTIN file.

 

 

SOC2-0C2 - Privileged Operation Exception

Unintentional branch to invalid instruction due to subscript error

A subscript or index contained an invalid value

COBOL – Missing period at end of paragraph or paragraph names

COBOL – Missing go back after sort verb – logic fell into input procedure

COBOL – ACCEPT verb executed when no SYSIN DD was available.

COBOL – Dataset was open or closed when an input/output instruction was issued for it.

A missing or misspelled DD statement

 

 

SOC3-0C3

An attempt was made to make the EXECUTE machine instruction the target of an EXECUTE instruction, which is not allowed

 

  

SOC4-0C4 - Protection Exception

an invalid machine address was calculated by the program

COBOL – Invalid address was referenced due to subscript error or bad parameter passed.

COBOL – In group move, receiving record variable length defined incorrectly.

COBOL – Tried moving variable length record that was larger than target field size.

COBOL – Tried to read or write a file which was not open.

COBOL – Used DD DUMMY with logic that moves high values to FD.

COBOL – Tried to call within COBOL SORT I/O procedure.

COBOL – Tried to “GOBACK” in the SORT output procedure.

COBOL – Linkage Area Ordering is not in sync with calling and called program.

COBOL – Missing Select statement (during compile).

The block size and record size were specified as equal for variable length records. Tried moving variable length record that was larger than target field size.

An uncontrolled loop moved data on top of instructions. 

Referencing a field in a record of a closed file e.g. attempting to read a file after end of file reached.

Referencing an item in Linkage-Section when there was no PARM= in the JCL. 

Calling/called programs have different length for items passed in Linkage Section with COBOL Sort, doing a STOP RUN or GOBACK while an input or output procedure is still running.

RESOLUTION

When analysing the dump, remember that the PSW saved when an S0C4 abend occurs may point at the failing instruction or it may point at the next instruction after the failing instruction.

Check to ensure that your program is obtaining, using, and freeing storage properly.

Moving data to a zero address or to an address less than 512 (decimal) is a very frequent cause of this abend.

 

SOC5 - Addressing Exception

Index or subscript out of range. An address developed and used by the Abending program lies outside of the available virtual storage on the processor.

A close statement was issued twice for the same file.

A procedure which was operated on by a Perform statement contained an improper exit.
3. An attempt was made to reference an input/output area, but no open or read had occurred for the data set.

A subscript or index contained an invalid value or Un-initialized index.

Indexing, Subscripting outside the program�s assigned limits.
6. Improper exit of a PERFORM statement.

7. 88 level cannot be last statement before Report section.

8. Reference to a field in a record before OPEN or after CLOSE.

 

S0C6 – Specification Exception

Specification exception. An attempt was made to execute a machine instruction which had invalid operands.

The program fields and/or data sets were incorrectly defined.

A multiplier or divisor was too large (exceeds 15 digits and sign)

The first operand field is shorter than or equal to the second operand field in a decimal (packed) multiplication or division instruction.

A subscript or index contained an invalid value.
5. An incorrect boundary was specified. Usually caused by unintentional branch to invalid instruction.

DD name/Select statement conflict.

7. ACCEPT statement with SYSIN DD and data missing.
8. An instruction specifies an odd register number when it should specify the even numbered register of an even- odd register pair.
9. A floating point register other than 0, 2, 4, or 6 was specified in a floating point instruction.
10. No GO TO statement in a paragraph named in an ALTER statement.

 

 

S0C7 – Data Exception

Numeric data was not initialized.

Numeric operation on non-numeric data

A subscript or index contained an invalid value

A comp-3 field had an invalid sign

A group move overlaid a numeric field with non-numeric data.

Un-initialized index or subscript

Fields in decimal arithmetic overlap incorrectly

The decimal multiplicand has too many high-order significant digits

Data fields was not initialized, blanks were read into a field designed to be processed with packed decimal instruction.

RESOLUTION

 

Check :

Data being passed is not initialised correctly

Array index is not valid, kind of subscript error

Value being passed is not available in table

COBOL working storage section is not initialised with given variable

‘param’ used in subroutine/program is not in correct order or missing

Go to SYSOUT and check the line which says that the program has ended in S0C7

It will have a Hex Offset - something like +00A12D.

Now, go to your compile JCL sysout and search for the keyword HEXLOC.

 

CHARS 'HEXLOC

COMMAND INPUT ===>                                            SCROLL

LINE #  HEXLOC  VERB                        LINE #  HEXLOC  VERB    

003741 00163A PERFORM                       003765 00163A EXIT      

003775 001642 INITIALIZE                    003777 001660 OPEN      

003779 001692 SET                           003780 001696 DISPLAY    

003785 0016B8 PERFORM                       003864 0016B8 OPEN      

003867 0016E6 SET                           003868 0016EA DISPLAY    

003873 001736 IF                            003874 001762 SET  

 

Now search for the Hex value displayed in step 2 in this list. You may not find the exact match. In this case you need to go for the closest hex number. For example, if you get SOC7 at Hex 001662, the closest match you have is 001660. Now you can get the line number corresponding to this Hex loc (line num for Hex 1660 is 3777). Now search for first occurrence of 3777 in the compile listing.

 

This statement or the statements that immediately precede / follow this statement will be the one which caused the SOC7.

 

  

S0C8 – Fixed Point Overflow Exception

The result of an arithmetic operation was too large for the receiving field

An attempt was made to divide by too small of a number.

An attempt was made to multiply by too large of a number.

A program loop containing an arithmetic instruction caused an invalid result.

 

  

S0C9 – Fixed Point Divide Exception

Division by ZERO in logics.

A division gave a quotient which was too large for the program defined field.

An attempt was made to divide by zero.

An attempt was made to divide by too small of a number.

A program loop containing an arithmetic instruction caused an invalid result.

A sort operation was missing a SORTIN or SORTOUT JCL DD card.

A quotient has exceeded the register size in a DIVIDE instruction, or the result of a CONVERT TO BINARY instruction is more than 31 bits long.

RESOLUTION

Verify that the data on the data set appears correct. If so, specify a different volume or device, and recreate the data set.

Change region to 0M in JCL.

If there is no data on the data set, recreate the data set, and resubmit the job.

 

 

S213

An error occurred in opening a data set on a direct access device.

A specific data set could not be located.

DISP=OLD or DISP=SHR was specified for an output data set.

DISP=MOD was specified but the data set did not exist.

RESOLUTON

Ensure that the data set name and volume serial number are correct and that the disposition of the data set is consistent with its usage.

If a data set is used from a preceding job step, be sure that the data set was created and passed correctly.

  

S001

An I/O error condition was encountered during BDAM, BISAM, BPAM, BSAM, QISAM, or QSAM processing

An attempt was made to read after end-of-file.

AN ATTEMPT TO open an open file

There was a conflict between the program, the JCL DCB, and the data set DCB information.

An incorrect block or record length was specified.

An attempt was made to write to an input data set.

There was physical damage to the recording medium.

There was a hardware malfunction

RESOLUTION

Compare the DCB attributes in the program with the JCL and the data set label. Correct any inconsistencies.

Ensure that the length of the work area for a write is the same as the FD record length.

Recreate the problem data set if necessary.

 

 

S002

Invalid I/O record, eg attempting to write a record that is longer than the maximum record length.

LRECL was greater than the DCB record length

With variable format files used for output.
The record is larger than the track size.
The record length is greater than allowed maximum 32,768.
The wrong record length is being used on output.
The 4-byte record length indicator is wrong.
Record greater than 32,768 bytes

 

S004

Error occurred during OPEN. Eg Invalid DCB.

AN INVALID RECORD WAS ENCOUNTERED ON A GET OPERATION.       
THE LENGTH FIELD OF A RECORD DESCRIPTOR WORD (RDW) FOR A VARIABLE  
LENGTH RECORD SPECIFIES A VALUE LESS THAN 4.          

 

S012

Program incorrectly issued a TIMEUSED macro

RC=4 - The program issued TIMEUSED with LINKAGE=SYSTEM, but the program was not in task control block (TCB) mode.

RC=8 - The program issued TIMEUSED with LINKAGE=SYSTEM, but the program held one or more locks.

 

S013

Conflicting or incomplete parameters in DCB, such as BLKSIZE not a multiple of LRECL, or missing SYSIN DD;

Tried to create a PDS without allocating directory blocks;

Member name specified in DD not found;

no directory allocation sub parameter in DD;

Open output dataset as input; Track overflow or updating attempted, but not supported by the OS.
May be a record length or OPEN statement error.

 

SX22

Job has been cancelled. The value of x will vary depending on the way the job was cancelled. S222 means job was cancelled by a user or operator without a dump. If a TSO session times out, you will probably get an S522 abend code.

S806

Unable Link or Load. The job was unable to find the specified load module. Check that the job is looking at the correct Load Libraries, specify a STEPLIB if required.

S80A

Not enough Virtual Storage to satisfy a GETMAIN or FREEMAIN request.

S822

Unable to obtain to obtain enough space to satisfy a REGION= request May need to change REGION statement in the JCL.

S878

Not enough storage available to satisfy a GETMAIN or FREEMAIN request. Job was unable to allocate an area of memory of the correct size. Try Specifying or amending the ‘REGION=’ JCL statement.

S913

You are trying to access a dataset which you are not authorized to use.

Sx37

Unable to allocate enough storage for a dataset. You might need to increase the amount of primary and secondary space to be allocated for a dataset in the ‘SPACE=’ parameter, or you may have to move the dataset to a different DASD device which has enough space to store the dataset. ‘x’ will vary, likely Abends are SB37, SD37 or SE37.

U1020

I/O Logic error. Typical reasons are; trying to write to a file opened as input; Rewrite without a previous read. See the message IGZ020I for details of the exact reason.

U1035

Invalid OPEN/CLOSE. Check there is a DD statement for the file. See the message IGZ035I for more detailed information.

A14

I/O ERROR

B37

The system allocated all the primary and secondary space it could, but it still could not write the output.

D37

Primary disk space was exceeded and no secondary space has been specified, or it has been exhausted.

E37

This often occurs when you try to add members to a PDS, and you get E37 ABEND. It occurs because the PDS Directory require more space for its members, than it was initially allotted.

 

No comments:

Post a Comment