Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

STEPLIB used to denote library for cobol db2 Load module
Goto page 1, 2  Next
 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
Ajay Baghel

Active User


Joined: 25 Apr 2007
Posts: 205
Location: Bangalore

PostPosted: Wed Mar 05, 2008 6:03 pm    Post subject: STEPLIB used to denote library for cobol db2 Load module
Reply with quote

Hi,

I have a doubt in the below step (production jcl) executing a cobol db2 program PGM1 :
Code:
 //STEP1   EXEC PGM=IKJEFT01
 //STEPLIB    DD DSN=LOADLIB..
 //SYSPRINT  DD SYSOUT=*
 //SYSOUT     DD SYSOUT=*
 //SYSTSIN    DD *
     DSN SYSTEM(DB2subsystem)
             RUN PROGRAM(PGM1)
                    PLAN(PGM1)
             END
/* 


I tried finding IKJEFT01 in the loadlib mentioned in the STEPLIB, but did not find it. Instead i found the program PGM1 in it. STEPLIB is used to point which library needs to be searched for the program executing in EXEC statement. Also since, LIB parameter is not mentioned in the SYSTSIN Card, is it correct to say that STEPLIB is used for denoting the loadlib for RUN PROGRAM i.e PGM1 in such case?


Thanks,
Ajay
Back to top
View user's profile Send private message

dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Wed Mar 05, 2008 6:42 pm    Post subject:
Reply with quote

ikjeft.. are part of the system link libs, usually available without a step or job lib. Like sort, iebgener, ect....


the steplib contains the member to be executed by the Terminal Monitoring Program IKJEFT01/1a/1b.
Back to top
View user's profile Send private message
Ajay Baghel

Active User


Joined: 25 Apr 2007
Posts: 205
Location: Bangalore

PostPosted: Wed Mar 05, 2008 6:46 pm    Post subject: Reply to: STEPLIB used to denote library for cobol db2 Load
Reply with quote

Dick,

I was wondering howcome the STEPLIB is containing load for PGM1 and not IKJEFT01 because of jcl rule:
Quote:
STEPLIB is used to point which library needs to be searched for the program executing in EXEC statement.


Thanks for clearing doubt.

Thanks,
Ajay
Back to top
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Wed Mar 05, 2008 11:42 pm    Post subject:
Reply with quote

Hi,

They say IKJET01 is "TSO" in Batch.
Back to top
View user's profile Send private message
mambopras

New User


Joined: 11 Nov 2008
Posts: 52
Location: Hyderabad

PostPosted: Wed Nov 19, 2008 2:48 pm    Post subject:
Reply with quote

I have few doubts in the Compile JCL, i 've searched for similar posts but could not find something which answers my questions and hence i am posting it here..

the question is

What exactly dose the steplib has in the precompiler, compile, link-edit steps I have no idea about what those libraries are...? Are those system libraries or user defined ones or what exxactly are they and their significance? Please explain it to me as if you aer doing to a layman in mainframes....that would be of a great help
Back to top
View user's profile Send private message
mambopras

New User


Joined: 11 Nov 2008
Posts: 52
Location: Hyderabad

PostPosted: Wed Nov 19, 2008 2:56 pm    Post subject:
Reply with quote

may be you did not get the whole link....i will copy paste the JCL here

//DB2COMP (XXX,XXX),'COMPILE JCL',
// CLASS=A,MSGCLASS=A,NOTIFY=&SYSUID
//***********************************************************
//* COMPILATION, LINK EDIT AND THE BIND STEP FOR A COBOL DB2 PROGRAM *
//* WILL BE DONE BY SUBMITTING THIS JOB. *
//* THE DB2 REGIONS AND CORRESPONDING PARAMETERS NEEDS TO BE CHANGED *
//* WITH RESPECT TO THE PROGRAM *
//***********************************************************
//* PRECOMPILE DB2 PROGRAM *
//*-------------- LOCATION OF DBRM LIBRARY -------------------------*
//***********************************************************
//PC EXEC PGM=DSNHPC,
// PARM='HOST(COB2),APOST,SOURCE',
// REGION=4096K
//DBRMLIB DD DISP=SHR,
// DSN=DEV.SURESH.DBRM(DB2PROG) <------------------------ (1)
//STEPLIB DD DISP=SHR,
// DSN=SYSX.DB2.XXX.XXXXX
//***********************************************************
//*SYSIN -----------INPUT COBOL DB2 PROGRAM LOCATION-----------------*
//********************************************************************
//SYSIN DD DISP=SHR,
// DSN=DEV.SURESH.SRC(DB2PROG)
//SYSCIN DD DISP=(MOD,PASS),
// DSN=&&TEMP,
// SPACE=(800,(500,500)),
// UNIT=SYSDA
//***********************************************************
//* DCLGEN MEMBER LOCATION *
//*SYSLIB-----------------INPUT SOURCE LIBRARY FOR SQL---------------*
//***********************************************************
//SYSLIB DD DISP=SHR,
// DSN=DEV.SURESH.DCL <--------(3)
// DD DISP=SHR,
// DSN=DEV.SURESH.CPY
//SYSPRINT DD SYSOUT=T
//SYSTERM DD SYSOUT=T
//SYSUDUMP DD SYSOUT=*
//SYSUT1 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//SYSUT2 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//*
//***********************************************************
//* COMPILATION *
//***********************************************************
//*
//COB EXEC PGM=IGYCRCTL,
// COND=(4,LT,PC),
// PARM=('SIZE(4000K),BUFSIZE(32760),LIST,LIB,MAP,OBJECT',
// 'DATA(31),XREF,RENT'),
// REGION=4M
//STEPLIB DD DISP=SHR,
// DSN=XXXX.XXXXXX
//SYSIN DD DISP=(OLD,DELETE),
// DSN=&&TEMP
//SYSLIN DD DISP=(MOD,PASS),
// DSN=&&LOADTMP,
// SPACE=(800,(500,500)),
// UNIT=SYSDA
//***********************************************************
//*--------------SOURCE LIBRARIES FOR COBOL DB2 CODE (COPY LIBRARIES)*
//***********************************************************
//SYSLIB DD DISP=SHR,
// DSN=DEV.SURESH.DCL <----------------- (4)
// DD DSN=DEV.SURESH.CPY,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSUT1 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//SYSUT2 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//SYSUT3 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//SYSUT4 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//SYSUT5 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//SYSUT6 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//SYSUT7 DD SPACE=(800,(500,500),,,ROUND),
// UNIT=SYSDA
//*
//*
//***********************************************************
//* LINK EDIT *
//***********************************************************
//*
//LKED EXEC PGM=IEWL,
// COND=((4,LT,COB),(4,LT,PC)),
// PARM='XREF'
//SYSLIB DD DISP=SHR,
// DSN=SXXX.SXXXXXXX
// DD DISP=SHR,
// DSN=XXXX.DB2.XXX.XXXXLOAD
// DD DISP=SHR,
// DSN=SYS1.VSCLLIB
//SYSLIN DD DISP=(OLD,DELETE),
// DSN=&&LOADTMP
//* DD DDNAME=SYSIN
//***********************************************************
//*----------------LOCATION OF LOAD LIBRARY--------------------------*
//SYSLMOD DD DISP=SHR,
// DSN=DEV.SURESH.LOADLIB(DB2PROG) <---(5)
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSUT1 DD SPACE=(1024,(50,50)),
// UNIT=SYSDA
//*
//***********************************************************
//* BIND - BIND THE DB2 PACKAGE *
//***********************************************************
//BIND EXEC PGM=IKJEFT01,
// COND=(4,LT),
// REGION=4096K
//STEPLIB DD DISP=SHR,
// DSN=XXX4.DB2.XXXX.XXXXLOAD
//DBRMLIB DD DISP=SHR,
// DSN=DEV.SURESH.DBRM(DB2PROG) <------------ (6)
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM (DEVDB )
BIND MEMBER (DB2PROG) -
PACKAGE (PACKG11) -
LIBRARY ('DEV.SURESH.DBRM') - <--------(7)
ACTION (REP) -
ISOLATION (CS) -
VALIDATE (BIND)-
RELEASE (COMMIT) -
OWNER (SURESH) -
QUALIFIER (DEVQUALI)
END
/*
**************************** Bottom of Data ****************************


(1) - When we precompiled, precompiler will create the DBRM, it will
be placed in the pds specified here.

(2) - Location of COBOL-DB2 program

(3) - Needs to speficiy DCLGEN member locations

(4) - Needs to specify DCLGEN and COPYBOOK locations here

(5) - Load module location, load module will be created here. this
location needs to be given in run jcl.

(5) & (6) - specify the location of DBRM, ( same location used in step1 ).
Back to top
View user's profile Send private message
revel

Active User


Joined: 05 Apr 2005
Posts: 135
Location: Bangalore/Chennai-INDIA

PostPosted: Wed Nov 19, 2008 3:07 pm    Post subject:
Reply with quote

Ajay,

The IKJEFT01 is a terminal monitor program, It function is to create an environment to run JOB PGM1 which is present in Load library present in STEPLIB.

Then about IKJEFT01 is normally present in default load library don't think it has to be STEPLIB Library.

When you RUN above JCL, IKJEFT01 will create an environment in MVS System and it will try to execute program PGM1 which you mentioned in JCL CARD

Code:
     DSN SYSTEM(DB2subsystem)
             RUN PROGRAM(PGM1)
                    PLAN(PGM1)
             END

and STEPLIB Load Library

Hope you are clear..
Back to top
View user's profile Send private message
mambopras

New User


Joined: 11 Nov 2008
Posts: 52
Location: Hyderabad

PostPosted: Wed Nov 19, 2008 3:11 pm    Post subject:
Reply with quote

Hi raghu,
Can you help me with my questions too....?
Back to top
View user's profile Send private message
revel

Active User


Joined: 05 Apr 2005
Posts: 135
Location: Bangalore/Chennai-INDIA

PostPosted: Wed Nov 19, 2008 3:16 pm    Post subject:
Reply with quote

Prashanth,

What exactly you need.. we are all here for to help you :o)
Back to top
View user's profile Send private message
mambopras

New User


Joined: 11 Nov 2008
Posts: 52
Location: Hyderabad

PostPosted: Wed Nov 19, 2008 3:23 pm    Post subject:
Reply with quote

Well, i beleive you haven't seen the questions i posted in this thread....i have asked about the exact content of the STEPLIB in a compile jcl for Cobol DB2 program , i gave a sample JCL too...please look above in this thread...you would see questions posted by me.....waiting for your reply.
Back to top
View user's profile Send private message
revel

Active User


Joined: 05 Apr 2005
Posts: 135
Location: Bangalore/Chennai-INDIA

PostPosted: Wed Nov 19, 2008 3:51 pm    Post subject:
Reply with quote

Hello,

Quote:
What exactly dose the steplib has in the precompiler, compile, link-edit steps I have no idea about what those libraries are...? Are those system libraries or user defined ones or what exxactly are they and their significance? Please explain it to me as if you aer doing to a layman in mainframes....that would be of a great help


As we know STEPLIB are used to locate programs which is defined in EXEC Card, In above scenario, The programs like

PRE-COMPILER
------------------
Code:
//PC EXEC PGM=DSNHPC,

DSNHPC (Pre compiler) - used to segregate sql code & Cobol code

Code:
//DBRMLIB DD DISP=SHR,
// DSN=DEV.SURESH.DBRM(DB2PROG) 

used to load segregated DBRM to above library DEV.SURESH.DBRM(DB2PROG)

Code:
//SYSIN DD DISP=SHR,
// DSN=DEV.SURESH.SRC(DB2PROG)

Used to denote source library

Code:
//SYSCIN DD DISP=(MOD,PASS),
// DSN=&&TEMP,

Used to load modified source pgm(Cobol codes which is segregated one)


COMPILER
------------
Code:
//COB EXEC PGM=IGYCRCTL,

It is a COBOL Compiler(If it C program we will have separate compiler)

Code:
//SYSIN DD DISP=(OLD,DELETE),
// DSN=&&TEMP

Inputting segregated cobol code to compiler

Code:
//SYSLIN DD DISP=(MOD,PASS),
// DSN=&&LOADTMP,

Compiler will link edit it will load MSP(modified source pgm)

LINK-EDIT
------------
Code:
//LKED EXEC PGM=IEWL,


The Linker can IEWL/HEWL - used to link edit and yield load module i think rest you will understand

find link below for further explanation about COMPILE-LINK-GO step

http://ibmmainframes.com/viewtopic.php?t=29779&postdays=0&postorder=asc&start=15

Hope you are clear
Back to top
View user's profile Send private message
mambopras

New User


Joined: 11 Nov 2008
Posts: 52
Location: Hyderabad

PostPosted: Wed Nov 19, 2008 4:04 pm    Post subject:
Reply with quote

Hi Raghu my doubt was about the STEPLIBs in teh JCL i had posted...what are the Libraries in the steplib and all about them....? hope you have understood the uqestion...please help me out with them
Back to top
View user's profile Send private message
revel

Active User


Joined: 05 Apr 2005
Posts: 135
Location: Bangalore/Chennai-INDIA

PostPosted: Wed Nov 19, 2008 4:57 pm    Post subject:
Reply with quote

Hello,

Thats what i answered, Just check the above post correctly...First Learn ABCD in JCL...
Back to top
View user's profile Send private message
mambopras

New User


Joined: 11 Nov 2008
Posts: 52
Location: Hyderabad

PostPosted: Wed Nov 19, 2008 5:45 pm    Post subject:
Reply with quote

Well then may be i misqouted the question , i know what actually a normal steplib contains ...but in the JCL i have given above.......
the precompile step has this
//STEPLIB DD DISP=SHR,
// DSN=SYSX.DB2.XXX.XXXXX
and next in the compilation step it is

//STEPLIB DD DISP=SHR,
// DSN=XXXX.XXXXXX

i said i did not understand...and if i have seen your link right...we dont have this...so that was why i was repeating the question. I hope you dont mistake me..
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7904
Location: Bellevue, IA

PostPosted: Wed Nov 19, 2008 6:11 pm    Post subject:
Reply with quote

Prashanth: a STEPLIB is only valid from EXEC to EXEC statement in JCL. You can specify a different STEPLIB for each EXEC in your job, and in some cases you must specify the STEPLIB for each EXEC. They point to different libraries because different programs are stored in different libraries.
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Thu Nov 20, 2008 3:55 am    Post subject:
Reply with quote

Hello,

And if you have questions about the compile jcl used on your system (everyone should use standard compile jcl, not create their own) your best source of info about the standard compile jcl is your system support people and/or dba's.

I would not muddy the water with examples from the web. . . fwiw icon_wink.gif
Back to top
View user's profile Send private message
revel

Active User


Joined: 05 Apr 2005
Posts: 135
Location: Bangalore/Chennai-INDIA

PostPosted: Thu Nov 20, 2008 1:38 pm    Post subject:
Reply with quote

Thank you robert for your valuable input, added to above statement,

Even order of search(To locate program which is in EXEC Card in STEPLIB library) is also different.

1. First it will search in STEPLIB Library
2. Then in JOBLIB Library if it present
3. Default Library(normally SYSIBM.LINKLIB or SYS1.LINKLIB depends on company standard).

Hope you clear now ..
Back to top
View user's profile Send private message
mambopras

New User


Joined: 11 Nov 2008
Posts: 52
Location: Hyderabad

PostPosted: Thu Nov 20, 2008 3:23 pm    Post subject:
Reply with quote

Ok! then in a precompile step what can it probably contain (Steplib)? and also in a compilation step....please let me know
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10201
Location: italy

PostPosted: Thu Nov 20, 2008 4:11 pm    Post subject: Reply to: STEPLIB used to denote library for cobol db2 Load
Reply with quote

Quote:
Thank you robert for your valuable input, added to above statement,

Even order of search(To locate program which is in EXEC Card in STEPLIB library) is also different.

1. First it will search in STEPLIB Library
2. Then in JOBLIB Library if it present
3. Default Library(normally SYSIBM.LINKLIB or SYS1.LINKLIB depends on company standard).

Hope you clear now ..


the jcl manual disagrees...
and I would rather trust the manual (quote reformatted )
Quote:
The system searches for a program in the private library you identify.
If a job contains a JOBLIB DD statement and a step contains a STEPLIB DD statement,
the system searches for the step's program first in the STEPLIB library and then in the system libraries.
The system ignores the JOBLIB library for that step.
Back to top
View user's profile Send private message
revel

Active User


Joined: 05 Apr 2005
Posts: 135
Location: Bangalore/Chennai-INDIA

PostPosted: Thu Nov 20, 2008 4:27 pm    Post subject:
Reply with quote

Quote:
The system searches for a program in the private library you identify.
If a job contains a JOBLIB DD statement and a step contains a STEPLIB DD statement,
the system searches for the step's program first in the STEPLIB library and then in the system libraries.
The system ignores the JOBLIB library for that step.


Enric,

I completly disagree with above statement, Try to execute programs which is in JOBLIB and SYSTEM Default Library by having diffrent version. Try to find whether JCL has pick up which version ie either from JOBLIB or SYSTEM Default Library(Have STEPLIB, JOBLIB in JCL)..(I have tested this).. :o)

To Prashanth,

I hope, This is not homework question..

You know STEPLIB is used for locate loadmodule of that particular step.. in above scenario its doing same job..for respective step..

hope you are clear....
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
This topic is locked: you cannot edit posts or make replies. RANDOM Function in COBOL swapnil781 COBOL Programming 2 Tue Nov 15, 2016 6:17 pm
No new posts Regarding COBOL Stored Procedure opti... selvamsrinivasan85 DB2 4 Fri Nov 04, 2016 8:57 pm
No new posts COBOL Version 6.1 Virendra Shambharkar COBOL Programming 5 Tue Nov 01, 2016 11:24 am
No new posts Cobol list of programs being called biswajit.dattagupta COBOL Programming 5 Tue Nov 01, 2016 2:10 am
No new posts Can sending 5 MB data between cobol p... Kevin Vaz CICS 12 Tue Oct 18, 2016 4:50 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us