Datacom S0C4 or S0C2 abend in DBINFPR after upgrading to newer COBOL version
search cancel

Datacom S0C4 or S0C2 abend in DBINFPR after upgrading to newer COBOL version

book

Article ID: 30408

calendar_today

Updated On:

Products

Datacom DATACOM - AD Datacom/AD Datacom/DB

Issue/Introduction

A COBOL batch program making Datacom calls (e.g., via module DBINFPR) fails with a system abend S0C4 reason code X'10' (Segment-Translation Exception) or S0C2.

Specific message may include: +IDI0002I Module DBINFPR, CSECT DBINFPR, offset X'292': Abend S0C4-X'10'

Environment

Z/OS

Datacom 15.1

Z/OS Enterprise COBOL version 5 or higher

Cause

 z/OS Enterprise COBOL version 5 and higher requires that the program load module be linked using AMODE=31. If the program or its associated User Requirements Table (URT) is linked as AMODE=24, a segment-translation exception occurs when the runtime attempts to access 31-bit storage.

Resolution

To resolve this abend, relink the COBOL program and the Datacom URT with 31-bit addressing attributes:

  1. Relink the COBOL program using the following link-editor control statements: MODE AMODE(31),RMODE(ANY)
  2. Update the URT source to specify AMODE 31 in the DBUREND macro: DBUREND SYSTEM=OS,USRINFO=...,AMODE=31,RMODE=ANY
  3. Re-assemble and link the URT.
  4. Rerun the application job.