CA IDMS PUT SCRATCH RECORD ID S0C9 ADSOMAIN ADSOCMIS

book

Article ID: 191895

calendar_today

Updated On:

Products

CA IDMS CA IDMS - Database CA IDMS - ADS

Issue/Introduction

CA IDMS PUT SCRATCH with RECORD ID fails with error:
DC027001 D003 PROGRAM CHECK IN ADSOMAIN AT OFFSET 1A4A8                                               

Syntax is:
   PUT SCRATCH AREA ID 'name' FROM nnnnnnn               
   RECORD ID record-id REPLACE.

The dumps shows there is a S0C9 in ADSOCMIS +2AD8.

Environment

Release : 18.5, 19.0

Component : CA ADS

Resolution

The ADS code is doing a PUT SCRATCH for a record id in a field which is defined as COMP-3 PIC S9(12).
The record id is stored by CA IDMS as a fullword so the largest value for a scratch record id is x'7FFFFFFF' which is 2,147,483,647.
The field contains a value of 9,000,001,002 which is too big to fit in a fullword so the ADS code gets a S0C9 trying to convert that value to binary.
This field cannot be used as a scratch record it unless it is restricted to a maximum value of 2,147,483,647.

Note that the working storage field used to hold the scratch record id can be any numeric datafield, but its value must not exceed 2,147,483,647.