Joined: 26 Nov 2002 Posts: 12375 Topics: 75 Location: San Jose
Posted: Sun Sep 18, 2005 8:52 am Post subject:
Gupta,
Check this link for a detailed explanation of the abend oc4. You need to check the reason code 10.
Code:
0C4
System ABEND: S0C4
Description: This ABEND is caused by a hardware detected virtual
address translation error, or a storage protection
violation. The cause of the error is indicated by the
reason code, as follows:
4 Protection exception. The key of the storage area that
the running program tries to access is different from
that of the running program. The key of the running
program can be obtained from the PSW key field. The
key of the storage can be obtained using the IPCS LIST
subcommand. The programmer should determine whether
the program is running with the correct key or whether
the storage address is set up correctly.
The protection exception might have occurred when the
program referenced a page that is protected with the
PGSER PROTECT service, or is defined as shared by the
IARVSERV service with a view of read-only.
10 Segment-translation exception. This error is caused by
one of the following:
o A program that was running disabled attempted to
reference storage while the page table for that
storage was paged out. To correct the error,
page-fix the storage before a program running
disabled attempts to reference it.
o A program attempted to reference storage that had
not been obtained. To correct the error, allocate
the storage before attempting to reference it.
o A program running in a subspace attempted to
reference storage that was not accessible to the
subspace at the time of error. To correct the
error, ensure that the program running in a
subspace references only the storage assigned to
that subspace, or storage that can be referenced
by all subspaces.
11 Page-translation exception. This error is caused by
one of the following:
o A program that was running disabled attempted to
reference storage while that storage was paged
out. To correct the error, page-fix the storage
before a program running disabled attempts to
reference it.
o A program attempted to reference storage that had
not been obtained. To correct the error, allocate
the storage before attempting to reference it.
o A program running in a subspace attempted to
reference storage that was not accessible to the
subspace at the time of error. To correct the
error, ensure that the program running in a
subspace references only the storage assigned to
that subspace, or storage that can be referenced
by all subspaces.
o SMS abend. The reason code is X'12C'.
2B ASTE-validity exception. This error is caused by one
of the following:
o During access-register translation, except as in
the case of the following bullet, the access-list
entry used designates an ASN-second-table entry in
which bit 0 is not zero. The access-list entry is
the one designated by the access register used.
o During access-register translation of ALET 1 by
BRANCH IN SUBSPACE GROUP, the subspace-ASTE origin
(SSASTEO) in the dispatchable-unit control table
designates an ASN-second-table entry in which bit
0 is not zero.
o During a subspace-replacement operation, the
subspace-ASTE origin (SSASTEO) in the
dispatchable-unit control table designates an
ASN-second-table entry in which bit 0 is not zero.
2C SMS abend. The reason code is X'12C'.
38 ASCE Type exception. This error is caused by one of
the following:
o A program attempted to reference storage that had
not been obtained. To correct the error, allocate
the storage before attempting to reference it.
o A program running in 64-bit addressing mode used a
31-bit pointer that had the high order bit on.
Note: Programs running in 31-bit mode using
4-byte pointers often use the high order
bit of a 4-byte pointer to indicate 31-bit
addressing mode, versus 24-bit mode. Also,
certain instructions will set the high
order bit on in registers to indicate
addressing mode.
o A program running in 64-bit addressing mode loaded
a 31-bit pointer into a 64-bit register and did
not clear the high half of the register. To
correct the error, ensure that the program running
in 64-bit addressing mode clears the 33 high-order
bits of any register when loading a 31-bit pointer
into that register.
39 Region-First exception. This error is caused by one of
the following:
o A program attempted to reference storage that had
not been obtained. To correct the error, allocate
the storage before attempting to reference it.
o A program running in 64-bit addressing mode used a
31-bit pointer that had the high order bit on.
Note: Programs running in 31-bit mode using
4-byte pointers often use the high order
bit of a 4-byte pointer to indicate 31-bit
addressing mode, versus 24-bit mode. Also,
certain instructions will set the high
order bit on in registers to indicate
addressing mode.
o A program running in 64-bit addressing mode loaded
a 31-bit pointer into a 64-bit register and did
not clear the high half of the register. To
correct the error, ensure that the program running
in 64-bit addressing mode clears the 33 high-order
bits of any register when loading a 31-bit pointer
into that register.
3A Region-Second exception. This error is caused by one
of the following:
o A program attempted to reference storage that had
not been obtained. To correct the error, allocate
the storage before attempting to reference it.
o A program running in 64-bit addressing mode used a
31-bit pointer that had the high order bit on.
Note: Programs running in 31-bit mode using
4-byte pointers often use the high order
bit of a 4-byte pointer to indicate 31-bit
addressing mode, versus 24-bit mode. Also,
certain instructions will set the high
order bit on in registers to indicate
addressing mode.
o A program running in 64-bit addressing mode loaded
a 31-bit pointer into a 64-bit register and did
not clear the high half of the register. To
correct the error, ensure that the program running
in 64-bit addressing mode clears the 33 high-order
bits of any register when loading a 31-bit pointer
into that register.
3B Region-Third exception. This error is caused by one of
the following:
o A program attempted to reference storage that had
not been obtained. To correct the error, allocate
the storage before attempting to reference it.
o A program running in 64-bit addressing mode used a
31-bit pointer that had the high order bit on.
Note: Programs running in 31-bit mode using
4-byte pointers often use the high order
bit of a 4-byte pointer to indicate 31-bit
addressing mode, versus 24-bit mode. Also,
certain instructions will set the high
order bit on in registers to indicate
addressing mode.
o A program running in 64-bit addressing mode loaded
a 31-bit pointer into a 64-bit register and did
not clear the high half of the register. To
correct the error, ensure that the program running
in 64-bit addressing mode clears the 33 high-order
bits of any register when loading a 31-bit pointer
into that register.
User Action: Correct the program logic error that generated the invalid
address or storage reference. When analyzing the dump,
remember that the PSW saved when an 0C4 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.
Possible causes for this abend include:
COBOL: Invalid address was referenced due to subscript error
or bad parameter passed
In group move, receiving record variable length
defined incorrectly
Tried moving variable length record that was larger
than target field size
Tried to read or write a file which was not open
Used DD DUMMY with logic that moves high values to
FD
Tried to call within COBOL SORT I/O procedure
Tried to "goback" in the SORT output procedure
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum