View previous topic :: View next topic
|
Author |
Message |
nareshdacha
New User
Joined: 12 Jan 2010 Posts: 66 Location: US
|
|
|
|
Is it possible to call a COBOL-DB2 from a pure COBOL program? If yes, how to write a JCL for it? Do we still need to use IKJEFT01 as PGM.
How to declare the plan/package for the sub-program ? Please suggest me how to proceed further.... |
|
Back to top |
|
|
bipinpeter
Active User
Joined: 18 Jun 2007 Posts: 213 Location: Cochin/Kerala/India
|
|
|
|
Yes you can call COBOL-DB2 program from a non DB2 Cobol Program.
You have to use IKJEFT* program to execute this. |
|
Back to top |
|
|
nareshdacha
New User
Joined: 12 Jan 2010 Posts: 66 Location: US
|
|
|
|
Normally we use IKJEFT01 to execute the COBOL-DB2 program. But in my scenario sub-program is a COBOL-DB2 program and main program is a pure COBOL program. Then how to use IKJEFTO1 for this purpose...
How to speify the plan/package for program..... Please explain....... |
|
Back to top |
|
|
ofer71
Global Moderator
Joined: 27 Dec 2005 Posts: 2358 Location: Israel
|
|
|
|
You specify it for the first program...
O. |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
Your standard COBOL program can call a DB2 program without any differences to the COBOL. In the calling program, the 'CALL' statement is exactly as it would be in any other program - so what to change?
The difference lies in the outside environment. In order to access DB2, you must start off with in a DB2 environment, and specify a plan (or package?) name, which has got the DB2 statements already defined to it (Ok, I'm not talking about dynamic SQL for the time being).
What this means in an zOS is that in the JCL rather than coding a EXEC PGM="pure-cobol", you would code a call to TSO, as in EXEC PGM=IKJEFT01, passing the actual execution in the SYSIN as Mr. O has said. |
|
Back to top |
|
|
daveporcelan
Active Member
Joined: 01 Dec 2006 Posts: 792 Location: Pennsylvania
|
|
|
|
First show an example of how PROGA (Cob-Db2) would call PROGB (also Cob-DB2).
Show an example of how your Bind Package and Bind Plan statements look.
Then show example of how you would invoke your PROGA.
I could show you how I would do it, but that may not match the conventions used in your shop.
So if you go first, then you can be helped.
Otherwise... not so much help. |
|
Back to top |
|
|
nareshdacha
New User
Joined: 12 Jan 2010 Posts: 66 Location: US
|
|
|
|
As my main program is COBOL program i think we need to use the below JCL...Is it correct ? .....But here my doubt is since my sub-program is COBOL-DB2 do we need to mention the plan/package or not...
//STEP1 EXEC PGM=FSS00100
//STEPLIB DD DSN=MAGT.ENDEVOR.LOADU,DISP=SHR
//INFILE DD DSN=MAGT.TEST.INPUT,DISP=SHR
//OUTFILE DD DSN=MAGT.TEST.OUTPUT,DISP=(NEW,CATLG),
// DCB=(RECFM=FB,LRECL=80)
//SYSOUT DD=SYSOUT(*)
Please correct me if am wrong......... |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
nareshdacha,
your lack of knowledge is depressing.
bipinpeter gave you the answer, offer71 expanded and provided detail.
and Anuj gave you an explanation why.
you need to learn some fundamentals, stop guessing and presuming.
again, as Anuj explained:
you need to establish a connect with db2.
A CAF connect via IKJEFTnn will suffice.
if you have RRS requirements, than you will need another method.
and do not ask the difference between a CAF connect and an RRS connect.
research, even google will provide you with the info.
you can start with chapter 3 of the ABCs of z/OS System Programming Volume 5 |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
nareshdacha wrote: |
Please correct me if am wrong......... |
Unfortunately, you are wrong, note this from what I said earlier:
Quote: |
in the JCL rather than coding a EXEC PGM="pure-cobol", you would code a call to TSO, as in EXEC PGM=IKJEFT01, passing the actual execution in the SYSIN as Mr. O has said. |
.
Suggest you look here also. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
nareshdacha,
my apologies. this is an interview forum. |
|
Back to top |
|
|
nareshdacha
New User
Joined: 12 Jan 2010 Posts: 66 Location: US
|
|
|
|
My program is FSS00100 is COBOL program which is calling COBOL-DB2 program FSS00500.
FSS00100:
05 WS-SUBPGM PIC X(8) VALUE 'FSS00500'.
CALL WS-SUBPGM USING CUSTOMER-NO.
//STEP010 EXEC PGM=IKJEFT01
//STEPLIB DD DSN=MAGT.ENDEVOR.LOADU,DISP=SHR
// DD DSN=SYS1.DSNDSNH.SDSNEXIT,DISP=SHR
// DD DSN=SYS1.DSNDSNH.SDSNLOAD,DISP=SHR
//SYSTSIN DD *
DSN SYSTEM(ATST1) -
RUN PROGRAM(FSS00100) PLAN(T_PLAN) -
LIB(MAGT.DBRM.LOADLIB) -
END
/*
This is the normal run jcl format which i used to run COBOL-DB2 program. But am not sure how to bind and execute if the sub-program is a COBOL-DB2.
Please correct me and suggest me. |
|
Back to top |
|
|
daveporcelan
Active Member
Joined: 01 Dec 2006 Posts: 792 Location: Pennsylvania
|
|
|
|
Dick,
While this is an interview forum, the level of questioning seems to me to be beyond that.
Naresh,
What you show above looks like it would work depending on:
What is still in question, is what do the Bind statements look like for BOTH Package FSS00500 and Plan T_PLAN.
Do you think I asked for this just for fun?
Quote: |
Show an example of how your Bind Package and Bind Plan statements look. |
So either:
1) You did not actually read what I took the time write
2) Chose to ignore the request as not important
3) Did not understand what I was looking for and did not want to ask
4) Some other unknown reason
Quote: |
Please correct me and suggest me.
|
Help others help you. Provide ALL of the information requested!
That is your suggestion. |
|
Back to top |
|
|
siva04408
New User
Joined: 23 Feb 2010 Posts: 11 Location: pune
|
|
|
|
My program is FSS00100 is COBOL program which is calling COBOL-DB2 program FSS00500. |
|
Back to top |
|
|
siva04408
New User
Joined: 23 Feb 2010 Posts: 11 Location: pune
|
|
|
|
Hi to all sorry for the inconvinience...
I too want to know what is the actual process we have to fallow when a cobol program is calling cobol+db2 subprogram.
You people has given some answers but iam not getting clarity...
ProgA is cobol program, ProgB is cobol+db2 prog.
i need actual process from start to end . compilation to execution with one example. If possible code the JCL...
it is not that much easy for newers..so iam requesting clear explination |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
daveporcelan,
oh my!
Did the TS actually repeat useless information that he provided before,
or did he actually answer your question about the bind statements? |
|
Back to top |
|
|
daveporcelan
Active Member
Joined: 01 Dec 2006 Posts: 792 Location: Pennsylvania
|
|
|
|
Dick,
Kanna (siva04408) is not the TS, but rather a TE (topic extender?).
Kanna,
There is more than one way to bind packages and plans.
I highly suggest you speak with some seniors at your site for an example of how your Bind Package and Bind Plan statements look.
If you have no seniors to go to then speak with your manager.
If you are just asking for your own knowledge, read the manual, or wait till you are on a site and go back to number 1. |
|
Back to top |
|
|
GuyC
Senior Member
Joined: 11 Aug 2009 Posts: 1281 Location: Belgium
|
|
|
|
with "standard" I mean what is usual at your site.
- Compile fss00100 as a standard non-db2 program
- precompile/compile/bind fss00500 as a standard db2 program to a normal package in the standard collection you would use.
-execute fss00100 with JCL as if it was a standard db2 program with the plan that contains the collection to which you have bound
The only possible difference might be the about searching for the correct Loadmodules.
You can use DSN RUN ... LIB() to specify the library with the main program ie. fss00100
But (this comes straight out of the manual) : Normal z/OS library searching is always used for any subprograms that is loaded by the main program.
which means the library with the subprogram must be somewhere in : STEPLIB DD , JOBLIB DD, link list |
|
Back to top |
|
|
|