Page 1 of 1

DSNX962I

PostPosted: Thu Jun 14, 2018 5:44 am
by gustavolozano
Hello...
I've coded an DB2 for z/OS (V12 NFM) Stored Procedure written in Assembler. The procedure itself is quite simple but during testing (calling from a COBOL program) I receive SQLCODE -471/00E79006, as below:

DSNT408I SQLCODE = -471, ERROR: INVOCATION OF FUNCTION OR PROCEDURE GUSTAVO.ASMSP001 FAILED DUE TO REASON 00E79006
DSNT418I SQLSTATE = 55023 SQLSTATE RETURN CODE
DSNT415I SQLERRP = DSNX9CAC SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD = 0 0 0 -1 0 0 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD = X'00000000' X'00000000' X'00000000' X'FFFFFFFF' X'00000000' X'00000000' SQL DIAGNOSTIC INFORMATION


WLM APPLENV shows the following message:

DSNX962I DSNX9WLS THE LE/370 CEEPIPI SERVICE RETURNED AN UNEXPECTED
RETURN CODE '0000000C'X FOR FUNCTION ADD_ENTRY FOR ASMSP001 SSN= DB02
PROC= DB02WLMG ASID= 014B WLM_ENV= DB02WLM_GENERAL


Apparently this is a LE/370-related problem (some LE library was not found in WLM APPLENV PROC). However, CEE.SCEERUN is present in WLM APPLENV PROC.
Has anybody seen that? Any special consideration for Assembler Stored Procedures?
Thank you very much and best regards...

Re: DSNX962I

PostPosted: Thu Jun 14, 2018 7:03 am
by Robert Sample
However, CEE.SCEERUN is present in WLM APPLENV PROC.
What about CEE.SCEERUN2?

Re: DSNX962I

PostPosted: Thu Jun 14, 2018 3:01 pm
by gustavolozano
Hi, Robert...
Added SCEERUN2 to WLM APPLENV's STEPLIB, as below (GUSTAVO.LINKLIB contains the SP executable module):

5 XXSTEPLIB DD DISP=SHR,DSN=CEE.SCEERUN
6 XX DD DISP=SHR,DSN=CEE.SCEERUN2
7 XX DD DISP=SHR,DSN=DB2.V12R1.DB02.SDSNEXIT
8 XX DD DISP=SHR,DSN=DB2.V12R1.SDSNLOAD
9 XX DD DISP=SHR,DSN=DBT.CKZ.V3R2.SCKZLOAD
10 XX DD DISP=SHR,DSN=GUSTAVO.LINKLIB


Unfortunately there were no changes (same error, same message).
As this problem is related to LE/370, checking LKED step in the SP preparation job I see that, although SCEELKED, SCEELKEX, SCEERUN and SCEERUN2 (thank you!) are included in LKED.STEPLIB, nothing from LE/370 in included in the SP module... Am I missing anything? Any other idea?
Thank you very much and best regards.

Re: DSNX962I

PostPosted: Thu Jun 14, 2018 6:03 pm
by Robert Sample
I'm not sure what's going on. Looking at the CEEPIPI return code, I find
12 The indicated environment was initialized for subroutines. No routine was executed.
I'm not sure you can conclude that there's an LE problem -- LE may have merely uncovered a hidden issue. My guess would be that the system is not able to find ASMSP001, based on the error message and the return code from CEEPIPI.

Re: DSNX962I

PostPosted: Sun Jun 17, 2018 6:01 am
by gustavolozano
Hello...
The correct interpretation of DSNX962I (RC=0000000C, function=ADD_ENTRY) is that I might be using a compiler which is not LE/370-enabled...
Well, I am using ASMA90 from High Lever Assembler R6.0. Do you know any restriction about this compiler for Stored Procedures?
Thank you and best regards.

Gustavo.

Re: DSNX962I

PostPosted: Wed Jun 20, 2018 12:27 am
by Jim Ruddy
Hi Gustavo,

From my quick searching, I believe you have to use something like the CEEENTRY and CEEEXIT macros for your assembler pgrogram to execute in an LE environment for the stored procedure to execute. Perhaps https://www.ibm.com/support/knowledgece ... ug147.html might be of some help. There is an example in the DB2 for z/OS Application Programming and SQL guide - search for "The following example shows how a stored procedure that is written in assembler language".

Jim