Posted: Wed Sep 01, 2010 10:05 am Post subject: Rexx to COBOL to DB2: -927 (no Language Interface)
I know how to call a COBOL program from rexx and I know how to execute a SQL statement from rexx, but when I try to call a COBOL program that executes a SQL statement I get a SQLCODE = -927. I run the rexx program within my job by calling IKJEFT01, but I have no idea as to how I should establish a DB2 environment.
Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
Posted: Thu Sep 02, 2010 6:20 am Post subject:
Why don't you post 'what you got' in the thread?
That way, others will be able to participate in solving this problem of yours,
as well as helping others to avoid this problem in the future. _________________ Dick Brenholtz
American living in Varel, Germany
1 J E S 2 J O B L O G -- S Y S T E M O N T W -- N O D E O N T W
0
17.42.18 JOB01752 ---- TUESDAY, 31 AUG 2010 ----
17.42.18 JOB01752 IRR010I USERID M811 IS ASSIGNED TO THIS JOB.
17.42.18 JOB01752 ICH70001I M811 LAST ACCESS AT 17:28:06 ON TUESDAY, AUGUST 31, 2010
17.42.18 JOB01752 $HASP373 M811KPGM STARTED - INIT 21 - CLASS I - SYS ONTW
17.42.18 JOB01752 IEF403I M811KPGM - STARTED - TIME=17.42.18
17.42.19 JOB01752 PROGRAM ID=SOFTSOX-L00 14.28 04/06/00
17.42.19 JOB01752 PROGRAM ID=Q60408-L00 13.49 04/06/00
17.42.19 JOB01752 PROGRAM ID=Q6000W-L00 10.27 02/22/99
17.42.19 JOB01752 PROGRAM ID=Q6040V-L00 11.21 02/17/93
17.42.19 JOB01752 +PROGRAM ID=SSA029X-L00 15.00 03/14/97
17.42.20 JOB01752 - --TIMINGS (MINS.)-- ----PAGING COUNTS---
17.42.20 JOB01752 -JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV PG PAGE SWAP VIO SWAPS STEPNO
17.42.20 JOB01752 -M811KPGM PROC0010 STEP0130 00 1014 .00 .00 .02 1614 0 0 0 0 0 1
17.42.20 JOB01752 IEF404I M811KPGM - ENDED - TIME=17.42.20
17.42.20 JOB01752 -M811KPGM ENDED. NAME-0134 TOTAL CPU TIME= .00 TOTAL ELAPSED TIME= .02
17.42.20 JOB01752 $HASP395 M811KPGM ENDED
0------ JES2 JOB STATISTICS ------
- 31 AUG 2010 JOB EXECUTION DATE
- 21 CARDS READ
- 241 SYSOUT PRINT RECORDS
- 0 SYSOUT PUNCH RECORDS
- 12 SYSOUT SPOOL KBYTES
- 0.02 MINUTES EXECUTION TIME
1 //M811KPGM JOB (34,8362),0134, JOB01752
// MSGLEVEL=(1,1),
// MSGCLASS=O,
// REGION=0M,
// NOTIFY=M811,
// CLASS=I
//*
2 // SET X1=A,X2=ACCT,B2=01
//*SET X2=ACCT
//*
3 // JCLLIB ORDER=M811.PROCLIB
4 // INCLUDE MEMBER=JOBLIBXX
5 XXJOBLIB DD DSN=M811.BATPGM.LNK,DISP=SHR
6 XX DD DSN=GRBS.BATPGM.LNK,DISP=SHR
7 XX DD DSN=DEVP.DP2.BATPGM.LNK,DISP=SHR
8 XX DD DSN=DEVP.DP1.BATPGM.LNK,DISP=SHR
9 XX DD DSN=TEST.BATPGM.LNK,DISP=SHR
10 XX DD DSN=ACCT.BATPGM.LNK,DISP=SHR
11 XX DD DSN=PROD.EFX.BATPGM.LNK,DISP=SHR
12 XX DD DSN=PRDM.BATPGM.LNK,DISP=SHR
XX*
XX*JOBLIB DD DSN=ACCT.BATPGM.LNK,DISP=SHR
XX* DD DSN=PROD.EFX.BATPGM.LNK,DISP=SHR
XX* DD DSN=PRDM.BATPGM.LNK,DISP=SHR
//*
13 //PROC0010 EXEC TLINKPGM,
//* X2=&X2
// X1=&X1,X2=&X2,B2=&B2
IEFC653I SUBSTITUTION JCL - TLINKPGM,X1=A,X2=ACCT,B2=01
14 XXTLINKPGM PROC
XX*
XX*P TLINKPGM: TEST REXX CALL COBOL
XX*
15 XXSTEP0130 EXEC PGM=SOFTSOX,
XX COND=(00,NE),
XX PARM=('PGM=IKJEFT01,PLN=PLBAT&X1.&B2.')
XX*TEP0130 EXEC PGM=IKJEFT01,
XX* COND=(00,NE)
XX*
XX*M IKJEFT01: VERSTUUR CONDITIEBESTANDEN INSTALLNET PER E-MAIL
XX*
IEFC653I SUBSTITUTION JCL - PGM=SOFTSOX,COND=(00,NE),PARM=('PGM=IKJEFT01,PLN=PLBATA01')
16 XXSYSIN DD DSN=&X2..FIXPRM.CTL(SOFTSOX1),
XX DISP=SHR
IEFC653I SUBSTITUTION JCL - DSN=ACCT.FIXPRM.CTL(SOFTSOX1),DISP=SHR
17 //STEP0130.SYSTSIN DD DSN=M811.FIXPRM.CTL(TLINKPGM)
X/SYSTSIN DD DSN=&X2..FIXPRM.CTL(TLINKPGM),
X/ DISP=SHR
IEFC653I SUBSTITUTION JCL - DSN=ACCT.FIXPRM.CTL(TLINKPGM),DISP=SHR
18 //STEP0130.SYSEXEC DD DSN=M811.REXX.CLIST,DISP=SHR
X/SYSEXEC DD DSN=&X2..BATPGM.RXX,
X/ DISP=SHR
IEFC653I SUBSTITUTION JCL - DSN=ACCT.BATPGM.RXX,DISP=SHR
19 XXISPLLIB DD DSN=SYSO.DB2.RUNLIB.LOAD,
XX DISP=SHR
20 XXISPMLIB DD DSN=SYSP.SOF.MSGS,
XX DISP=SHR
21 XX DD DSN=SYS1.SISPMENU,
XX DISP=SHR
22 XXISPPLIB DD DSN=SYS1.SISPPENU,
XX DISP=SHR
23 XXISPSLIB DD DSN=SYS1.SISPSENU,
XX DISP=SHR
24 XXISPTLIB DD DSN=SYS1.SISPTENU,DISP=SHR
25 XXISPPROF DD SPACE=(TRK,(0100,0100,0100),RLSE),
XX LRECL=00080,RECFM=FB
26 XXISPLOG DD SYSOUT=*,
XX LRECL=00133,RECFM=FA
27 XXXOUT DD SPACE=(TRK,(0100,0100),RLSE)
28 XXXPRINT DD SYSOUT=*
29 XXSYSOUT DD SYSOUT=*
30 XXSYSPRINT DD SYSOUT=*
31 XXSYSTSPRT DD SYSOUT=*
32 XXSYSABOUT DD SYSOUT=D
33 XXSYSDBOUT DD SYSOUT=D
34 XXSYSUDUMP DD SYSOUT=D
XX*
//*
//*TEP0130.SYSIN DD DSN=M811.FIXPRM.CTL(SOFTSOXX)
//*
STMT NO. MESSAGE
4 IEFC002I INCLUDE GROUP JOBLIBXX WAS EXPANDED USING PRIVATE LIBRARY M811.PROCLIB
13 IEFC001I PROCEDURE TLINKPGM WAS EXPANDED USING PRIVATE LIBRARY M811.PROCLIB
ICH70001I M811 LAST ACCESS AT 17:28:06 ON TUESDAY, AUGUST 31, 2010
IEF236I ALLOC. FOR M811KPGM STEP0130 PROC0010
IGD103I SMS ALLOCATED TO DDNAME JOBLIB
IGD103I SMS ALLOCATED TO DDNAME
IGD103I SMS ALLOCATED TO DDNAME
IGD103I SMS ALLOCATED TO DDNAME
IGD103I SMS ALLOCATED TO DDNAME
IGD103I SMS ALLOCATED TO DDNAME
IGD103I SMS ALLOCATED TO DDNAME
IEF237I 4013 ALLOCATED TO
IGD103I SMS ALLOCATED TO DDNAME SYSIN
IGD103I SMS ALLOCATED TO DDNAME SYSTSIN
IGD103I SMS ALLOCATED TO DDNAME SYSEXEC
IGD103I SMS ALLOCATED TO DDNAME ISPLLIB
IGD103I SMS ALLOCATED TO DDNAME ISPMLIB
IEF237I 441B ALLOCATED TO
IEF237I 441B ALLOCATED TO ISPPLIB
IEF237I 441B ALLOCATED TO ISPSLIB
IEF237I 441B ALLOCATED TO ISPTLIB
IGD101I SMS ALLOCATED TO DDNAME (ISPPROF )
DSN (SYS10243.T174218.RA000.M811KPGM.R0112863 )
STORCLAS (BASE) MGMTCLAS ( ) DATACLAS ( )
VOL SER NOS= VIO
IEF237I JES2 ALLOCATED TO ISPLOG
IGD101I SMS ALLOCATED TO DDNAME (XOUT )
DSN (SYS10243.T174218.RA000.M811KPGM.R0112864 )
STORCLAS (BASE) MGMTCLAS ( ) DATACLAS (SEQUENT)
VOL SER NOS= VIO
IEF237I JES2 ALLOCATED TO XPRINT
IEF237I JES2 ALLOCATED TO SYSOUT
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSTSPRT
IEF237I JES2 ALLOCATED TO SYSABOUT
IEF237I JES2 ALLOCATED TO SYSDBOUT
IEF237I JES2 ALLOCATED TO SYSUDUMP
IEF142I M811KPGM STEP0130 PROC0010 - STEP WAS EXECUTED - COND CODE 0000
IGD104I ACCT.FIXPRM.CTL RETAINED, DDNAME=SYSIN
IGD104I M811.FIXPRM.CTL RETAINED, DDNAME=SYSTSIN
IGD104I M811.REXX.CLIST RETAINED, DDNAME=SYSEXEC
IGD104I SYSO.DB2.RUNLIB.LOAD RETAINED, DDNAME=ISPLLIB
IGD104I SYSP.SOF.MSGS RETAINED, DDNAME=ISPMLIB
IEF285I SYS1.SISPMENU KEPT
IEF285I VOL SER NOS= SYSRB1.
IEF285I SYS1.SISPPENU KEPT
IEF285I VOL SER NOS= SYSRB1.
IEF285I SYS1.SISPSENU KEPT
IEF285I VOL SER NOS= SYSRB1.
IEF285I SYS1.SISPTENU KEPT
IEF285I VOL SER NOS= SYSRB1.
IGD105I SYS10243.T174218.RA000.M811KPGM.R0112863 DELETED, DDNAME=ISPPROF
IEF285I M811.M811KPGM.JOB01752.D0000101.? SYSOUT
IGD105I SYS10243.T174218.RA000.M811KPGM.R0112864 DELETED, DDNAME=XOUT
IEF285I M811.M811KPGM.JOB01752.D0000102.? SYSOUT
IEF285I M811.M811KPGM.JOB01752.D0000103.? SYSOUT
IEF285I M811.M811KPGM.JOB01752.D0000104.? SYSOUT
IEF285I M811.M811KPGM.JOB01752.D0000105.? SYSOUT
IEF285I M811.M811KPGM.JOB01752.D0000106.? SYSOUT
IEF285I M811.M811KPGM.JOB01752.D0000107.? SYSOUT
IEF285I M811.M811KPGM.JOB01752.D0000108.? SYSOUT
IEF373I STEP/STEP0130/START 2010243.1742
IEF374I STEP/STEP0130/STOP 2010243.1742 CPU 0MIN 00.09SEC SRB 0MIN 00.00SEC VIRT 860K SYS 464K EXT 1948K SYS 11884K
IGD104I M811.BATPGM.LNK RETAINED, DDNAME=JOBLIB
IGD104I GRBS.BATPGM.LNK RETAINED, DDNAME=
IGD104I DEVP.DP2.BATPGM.LNK RETAINED, DDNAME=
IGD104I DEVP.DP1.BATPGM.LNK RETAINED, DDNAME=
IGD104I TEST.BATPGM.LNK RETAINED, DDNAME=
IGD104I ACCT.BATPGM.LNK RETAINED, DDNAME=
IGD104I PROD.EFX.BATPGM.LNK RETAINED, DDNAME=
IEF285I PRDM.BATPGM.LNK KEPT
IEF285I VOL SER NOS= TSR901.
IEF375I JOB/M811KPGM/START 2010243.1742
IEF376I JOB/M811KPGM/STOP 2010243.1742 CPU 0MIN 00.09SEC SRB 0MIN 00.00SEC
1 Time *** ISPF transaction log *** Userid: M811 Date: 10/08/31 Page: 1
17:42 Start of ISPF Log - - - - Session # 1 -------------------------------------------------------
17:42 TSO - Command - - TLINKPGM
17:42 End of ISPF Log - - - - - Session # 1 -------------------------------------------------------
1 P A R A M E T E R S U B S T I T U T I O N U T I L I T Y 31/08 2010 17.42.19 1
0*************** PARM VALUE ON EXEC STATEMENT *
- PGM=IKJEFT01,PLN=PLBATA01
*............*...........
1 P A R A M E T E R S U B S T I T U T I O N U T I L I T Y 31/08 2010 17.42.19 2
0*************** INPUT CARDS AND OUTPUT CARDS IF SUBSTITUTION HAS BEEN PERFORMED *
DSN SYSTEM(DB2O)
RUN PROGRAM(&PGM) PLAN(&PLN)
* RUN PROGRAM(IKJEFT01) PLAN(PLBATA01) AFTER SUBSTITUTION
-*************** STATISTICS *
0 NUMBER OF KEYWORDS.................2
0 LENGTH OF PARM....................25
0 CARDS COPIED TO OUTPUT.............2
0 CARDS UPDATED......................1
0 CARDS IN ERROR.....................0
- ******* END OF RUN - RETURN CODE=00
Gearriveerd in CUCKLTX]
Ssa000c: 999LEES VESTIGINGSADRES
Cuc153c:
1614528
Uitvoeren gewenst req]
In programma CUC049XR (section R870 ) is een SQL-fout opgetreden
SQLCODE = -927, ERROR: THE LANGUAGE INTERFACE (LI) WAS CALLED WHEN THE CONNECTING ENVIRONM
ENT WAS NOT ESTABLISHED. THE PROGRAM SHOULD BE INVOKED UNDER THE DSN COMMAND
In programma CUCKLTX (section R761/Z03C) geeft request LEES LOGISCH returncode +999
1READY
ISPSTART CMD(TLINKPGM)
7 *-* /* trace 'N'*/
8 *-* req = 'LEES VESTIGINGSADRES '
IRX0100I +++ Interactive trace. TRACE OFF to end debug, ENTER to continue. +++
9 *-* ssa000c = '999' ]] req ]] copies(' ', 107)
10 *-* selblk = ' 1614528' ]] copies(' ', 84)
11 *-* dtablk = copies(' ', 323)
12 *-* cuc153c = selblk ]] dtablk
13 *-* pgm = 'CUCKLTX'
14 *-* Address TSO 'DSN SYSTEM(DB2O)'
>>> "DSN SYSTEM(DB2O)"
15 *-* Address LINKPGM pgm 'ssa000c cuc153c'
>>> "CUCKLTX ssa000c cuc153c"
16 *-* say ssa000c cuc153c
00{LEES VESTIGINGSADRES 99I
1614528
17 *-* Return
M811.M811KPGM.JOB01752.D0000101.? was preallocated (no free was done).
READY
END
Replace CUCKLTX in the Rexx program with your own SQL select * executing compiled, link-edited and packaged module and appropriate interfaces as parameters on the LINKPGM statement.
I hope this isn't to much of a read. If you need anything else, let me know.
I was trying that SOFTSOX stuff to find a solution! Forget it, cut it out and uncomment the IKJEFT01 statement.
The COBOL program mentioned was link-edited with IEWL, it does not contain any SQL, but will call other COBOL programs that do contain SQL, that have also been link-edited with IEWL. What is DSNELI, what does it do and why should I link-edit my program with it. It does not appear that that option will be available at my site shortly.
Joined: 01 Feb 2007 Posts: 1075 Topics: 7 Location: At Home
Posted: Fri Sep 03, 2010 11:03 am Post subject:
Google DSNELI and read the link Kolusu gave you. It looks as though you may not be able to execute your COBOL program from Rexx but have to do it as any other DB2 batch program...
Code:
DSN SYSTEM(...)
RUN lib(pgm)
_________________ Utility and Program control cards are NOT, repeat NOT, JCL.
Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Fri Sep 03, 2010 11:30 am Post subject:
Rubycon01 wrote:
The COBOL program mentioned was link-edited with IEWL, it does not contain any SQL, but will call other COBOL programs that do contain SQL, that have also been link-edited with IEWL. What is DSNELI, what does it do and why should I link-edit my program with it. It does not appear that that option will be available at my site shortly.
Rubycon01,
IEWL is a link edit program, but DSNELI is language interface module which you need to link edit with your cobol program.
The sysin to your IEWL should be as follows
Code:
//SYSIN DD *
INCLUDE SYSLIB(DSNELI)
INCLUDE OBJ(your cob program objname)
NAME yourpgmname(R)
//*
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum