Re: S0C4 x'4' abend while reading VSAM KSDS file

I haven't read this thread yet, but has someone said:

A) to call ILBOWAT0, you must compile the CALLING program with DATA(24)
B) That calls to ILBOWAT0 should now be replaced by calls to CEE3DLY, see:

Bill Klein
wmklein <at>
<vbarathee@xxxxxxxxx> wrote in message
hi all ,

Hope someone can resolve my clarifications on cobol , please find
below the scenario,

We have a batch job runs with two input files, one PS file and a VSAM
KSDS file , we read the acct number from the PS file and check with
KSDS file , we use the acct no as key and take details , then we write
into MQ series . Also we have a wait time logic in the pgm which calls
ILBOWAT module so that once the threshold reaches some 250,000 in MQ ,
all the jobs will wait for 180 secs and then it will continue writing
into MQ.

This program was a generic one and used by 10 split jobs running
parallely in production , recently we added the VSAM file , previously
the pgm had only PS file. Now the job is getting abend with S0C4 x'4'
when it waits for the threshold limit and abends exactly when it tries
to read the input VSAM file.

The VSAM file was defined in Online region , but no job or region
would update or access the file at the time of run. The share option
for VSAM was (3,3) and no RLS option was used.

Please find below abend code details ,

MQM-REASON-CODE: 000000000
************** CALL TO MQOPEN *****************
MQM-REASON-CODE: 000000000
### MQ DEPTH: 79481 RECORDS WRITTEN: 10001 02:32:22
### MQ DEPTH: 159281 RECORDS WRITTEN: 20002 02:33:04
### MQ DEPTH: 244216 RECORDS WRITTEN: 30003 02:33:33
### MQ DEPTH: 327990 RECORDS WRITTEN: 40004 02:34:01
### MQ DEPTH: 227646 RECORDS WRITTEN: 40004 02:37:01
CEE3204S The system detected a protection exception (System
Completion Code=0C4).
From compile unit DSCB6100 at entry point DSCB6100 at
compile unit offset +000545C4 at entry offset +000545C4
at address 0005B904.

02.37.02 JOB02101 +IDI0001I Fault Analyzer V6R1M0 (PK29971
2006/08/24) invoked by IDIXDCAP using MVSP.FANALYZE.PARMLIB(IDICNF00)
02.37.03 JOB02101 +IDI0081I IEWBIND unusual condition INCLUDE
DSCB6100 rc=3000526
02.37.19 JOB02101 +IDI0002I Module IGZCXFR offset X'280': Abend S0C4-
X'4' (Protection Exception)
02.37.19 JOB02101 +IDI0003I Fault ID F04475 assigned in history file

Fault analyzer details :

File Name . . . . . . . . . : DSCCQUEU
RT??? Data Set Name . . . . . . : DSCP.VO00P.CICS160I.DSCCQUEU
ëRT?5 File Attributes . . . . . : ORGANIZATION=INDEXED VSAM, ACCESS
?RT??? Last I/O Function . . . . : READ
?RT??? Open Status . . . . . . . : INPUT
RT??? File Status Code. . . . . : 23
ïRT?5 An attempt was made to randomly
access a record
ïRT?5 that does not exist in the file,
or a START or
ïRT?5 random READ statement was
attempted on an optional
ïRT input file that was not present.
?RTööö Return Code . . . . . . . : X'8'
?RT??? Function Code . . . . . . : X'0'
?RT??? Feedback Code . . . . . . : X'10'
ïRTass Record not found, or the RBA is
not found in the
ïRT??? buffer pool. (If multiple RPL
requests are issued
ïRT??? for alternate indexes, getting
return code
ïRT??? 16(X'10') might mean a temporary
situation where
ïRT??? processing has not been completed
on either the
ïRT base cluster or the associated
alternate indexes.)

The same code works fine when we use Dynamic access mode and a START
verb before reading the VSAM file.

We are able to track the pgm where it gets abend , but we are unable
to locate the exact reason . The same code runs in testing environment
fine if it is not going to wait time logic .

Please let me know ur findings.