IBM Support

4038 when running COBOL application with SQL

Troubleshooting


Problem

You receive an abend4038 when running a CICS program written in COBOL with SQL commands. When you run the program through CEDF, you can see that the abend 4038 occurs when the program goes to do the first load. You are using Language Environment (LE).

Cause

An abend 4038 usually means transactions are not prepared to run above the line. According to the LE messages manual there should be a return code. It also states to check the LE messages.

Resolving The Problem

Change the LE runtime options to ALL31=OFF and STACK=(4K,4K,BELOW,KEEP). This can be done using IUI skeletons.

Following are the IUI COBOL specific skeletons to build SQL CICS applications (all located in ICCF lib 2):

C$QCVONL - COBOL/VSE source with EXEC CICS and EXEC SQL requests
C$QCOONL - Former DOS/COBOL with ........ ........
C$QC2ONL - Former VS COBOL-II ........ ........

In general explicit setting of AMODE and RMODE is possible using 'EXEC LNKEDT,PARM='AMODE=31,RMODE=ANY' , but depends on the application capabilities.

[{"Type":"MASTER","Line of Business":{"code":"LOB70","label":"Z TPS"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"ARM Category":[{"code":"a8m0z00000007d1AAA","label":"Developing applications"}],"ARM Case Number":"","Platform":[{"code":"PF038","label":"z\/VSE"}],"Version":"All Versions"}]

Product Synonym

CICS/VSE CICS VSE

Document Information

Modified date:
05 January 2026

UID

swg21024616