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. A subscript or index contained an invalid
value or Un-initialized index. Indexing, Subscripting outside the
program�s assigned limits. 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. DD name/Select statement conflict. 7. ACCEPT statement with SYSIN DD and data
missing. |
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. |
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. |
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