S0C6 Abend while Opening a DB2 Cursor in a DB2-PLI Proram

Post your questions on PL/I.

Moderator: Moderator Group

Post Reply
karthik_desabhatla
Member
Posts: 3
Joined: Tue Dec 26, 2006 8:41 pm

S0C6 Abend while Opening a DB2 Cursor in a DB2-PLI Proram

Post by karthik_desabhatla » Tue Dec 26, 2006 9:03 pm

Hi,

I have a problem of a S0C6 Abend, in the OPEN CURSOR Statement in a DB2-PLI Program. (With a USER ABEND Error Message of 1500). The Job is Bombing with a S0C6 Abend.


I am a bit clueless on why this is happening. Hence, I need help / suggestions / ideas on how this problem can be resolved. I am providing all the information below. I request help on this matter.


Declaration of Cursor in the DB2PLI Program.
------------------------------------------
EXEC SQL DECLARE UPDATE_CLOC1 CURSOR WITH HOLD FOR
SELECT CFL_ID,CFL_NM_TXT,CFL_DESC
FROM L03.FINL_LOCATION_V01
WHERE CFL_ID = :FINL_REC.WS_CFL_ID
FOR UPDATE OF CFL_NM_TXT,CFL_DESC;

L03.FINL_LOCATION_V01 is a SELECT * View on the DB2 Table, SHGG.FINL_LOCATION.

FINL_REC.WS_CFL_ID is a Working Storage Variable, where a valid value is being passed before CURSOR Declaration.


Open Cursor Ststement in the DB2PLI Program
--------------------------------------------
EXEC SQL OPEN UPDATE_CLOC1;
**** The Job is Abending in this Statement with a S0C6 Abend *******


DCLGEN for the View - L03.FINL_LOCATION_V01
-----------------------------------------------
EXEC SQL DECLARE L03.FINL_LOCATION_V01 TABLE
( CFL_ID CHAR(6) NOT NULL,
CFL_STRTDT DATE NOT NULL,
CFL_RPTG_IND CHAR(1) NOT NULL,
CFL_ENDDT DATE NOT NULL,
CFL_OWN_PCT DECIMAL(5,2),
CFL_OWN_ID CHAR(6),
CFL_LUID CHAR(10) NOT NULL,
CFL_LUDT TIMESTAMP NOT NULL,
CFLST_CD CHAR(10) NOT NULL,
GL_CD CHAR(9),
GLT_CD CHAR(,
CFL_PAR_ID CHAR(6),
CFL_PAR_STRTDT DATE,
CFLT_CD CHAR(10) NOT NULL,
CFL_NM_TXT VARCHAR(40) NOT NULL,
CFL_DESC VARCHAR(240) NOT NULL,
CFL_EVA_IND CHAR(1) NOT NULL,
CFL_SHORT_NM CHAR(,
CFL_ORG_CODE CHAR(2) NOT NULL
) ;
/************************************************** *******
/* PLI DECLARATION FOR TABLE L03.FINL_LOCATION_V01 */
/************************************************** *******
DCL 1 DCLFINL_LOCATION_V01,
5 CFL_ID CHAR(6),
5 CFL_STRTDT CHAR(10),
5 CFL_RPTG_IND CHAR(1),
5 CFL_ENDDT CHAR(10),
5 CFL_OWN_PCT DEC FIXED(5,2),
5 CFL_OWN_ID CHAR(6),
5 CFL_LUID CHAR(10),
5 CFL_LUDT CHAR(26),
5 CFLST_CD CHAR(10),
5 GL_CD CHAR(9),
5 GLT_CD CHAR(,
5 CFL_PAR_ID CHAR(6),
5 CFL_PAR_STRTDT CHAR(10),
5 CFLT_CD CHAR(10),
5 CFL_NM_TXT CHAR(40) VAR,
5 CFL_DESC CHAR(240) VAR,
5 CFL_EVA_IND CHAR(1),
5 CFL_SHORT_NM CHAR(,
5 CFL_ORG_CODE CHAR(2);

DB2 PLan being Used
----------------------

BIND PLAN(SHGGCLT) OWNER(L03) +
MEMBER(SHGGCLT) +
ACTION(REPLACE) RETAIN +
VALIDATE(BIND) ISOLATION(CS) FLAG(I) DYNAMICRULES(RUN) +
ACQUIRE(USE) RELEASE(COMMIT) EXPLAIN(NO) +
NODEFER(PREPARE) +
CURRENTDATA(NO) +
NOREOPT(VARS) KEEPDYNAMIC(NO) +
DBPROTOCOL(PRIVATE) +
IMMEDWRITE(NO) ENCODING( 37) +
QUALIFIER(L03) +
CACHESIZE(1024) +
DEGREE(1) +
SQLRULES(DB2) +
DISCONNECT(EXPLICIT)
END


Also, I just temporarily modified my Program to get a different SQL CURSOR Executed in the Program, as follows. But, this is also failing in the exactly same way in the OPEN CURSOR Statement.

EXEC SQL DECLARE UPDATE_CLOC2 CURSOR WITH HOLD FOR
SELECT CFL_ID,CFL_NM_TXT,CFL_DESC
FROM L03.FINL_LOCATION_V01
WHERE
CFL_ENDDT ?= '12/31/2999'
FOR UPDATE OF CFL_NM_TXT,CFL_DESC;

EXEC SQL OPEN UPDATE_CLOC2;

EXEC SQL FETCH UPDATE_CLOC2 INTO
CLFINL_LOCATION_V01.CFL_ID,
CLFINL_LOCATION_V01.CFL_NM_TXT,
CLFINL_LOCATION_V01.CFL_DESC;

EXEC SQL
UPDATE L03.FINL_LOCATION_V01
SET CFL_NM_TXT = 'RESERVED FOR FUTURE USE',
CFL_DESC = 'RESERVED FOR FUTURE USE'
WHERE CURRENT OF UPDATE_CLOC2;


Also, this might not be an Authority Issue, as we have tried Execution of the Program with different ID's, who have access on the PLAN and the DB2 View and the DB2 Table.


Can someone throw suggestions, on what might be possible causes for this problem, Or, what might be the ways to investigate the root cause of this problem ?
I would be thankful for the suggestions.

Regards,
Karthik.
________
Regards,
Karthik.

Post Reply

FREE TUTORIALS

Tutorials
Free tutorials from mainframegurukul
  • JCL Tutorial
    Covers all important JCL concepts.
  • Cobol Tutorial
    This tutorials covers all Cobol Topics from STRING to COMP-3.
  • DB2 Tutorial
    DB2 Tutorial focuses on DB2 COBOL Programming.
  • SORT Tutorial
    This Tutorial covers all important aspects of DFSORT with examples
  • CICS Tutorial
    This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions



Other References
Mainframe Tools and others