search cancel

COBOL DYNAM CEE3501S DBNTRY was not found U4039 S806 abend

book

Article ID: 243984

calendar_today

Updated On:

Products

Datacom Datacom/DB DATACOM - AD

Issue/Introduction

I recompiled a COBOL program that calls Datacom with the DYNAM compile option.  The compile job was successful.  However, during run time the job abended with:

CEE3501S The module DBNTRY was not found.
          From compile unit progname at entry point progname at statement 572 at compile unit offset +00000D6E at
          entry offset +00000D6E at address 00007D6E.

USER COMPLETION CODE=4039 REASON CODE=00000000

IEF450I jobname step - ABEND=S806 U0000 REASON=00000004

 

Environment

Release : 15.1

Component : Datacom/DB

Cause

The COBOL compiler option DYNAM will cause COBOL LE to do an operating system LOAD of the program at runtime. 
See the IBM documentation on the DYNAM option:

Use DYNAM to cause nonnested, separately compiled programs invoked through the CALL literal statement to be loaded for CALL, and deleted for CANCEL, dynamically at run time.

However this fails because there is no load module called DBNTRY.

DBNTRY is an entry point in the URT.

Resolution

The DYNAM option is not supported with Datacom programs.

It's a requirement for Datacom programs that the NODYNAM compiler option be used. 

With this option, the external reference for DBNTRY in the COBOL program will be resolved at runtime to the entry point in the URT linked with the program.