View previous topic :: View next topic
|
Author |
Message |
paramoberoi
New User
Joined: 26 Oct 2010 Posts: 12 Location: USA
|
|
|
|
Hello
In order to execute cobol-db2 batch programs I ve always used IKJEFT01/1A/1B TSO/E programs.
In my new shop I noticed a JCL that executes cobol-db2 program by giving program name directly in PGM= parameter. It has a DD statement by name DSNPARMS having DISP=(MOD,DELETE,DELETE) so i cannot view it. This DDname is not used anywhere in program.
Suspecting that it may use CAF or RRASF to connect to DB2 i checked listing for precompiler option and found ATTACH(TSO) and DB2 VERSION 8 REL. 1.0. Besides it has no special processing in prog to connect to DB2.
Can you help me explain how is the DB2 prog being executed without using IKJEFT01 . Thanks. |
|
Back to top |
|
|
Dsingh29
Active User
Joined: 16 Dec 2008 Posts: 132 Location: IBM
|
|
|
|
Did you checked the compilation process? |
|
Back to top |
|
|
Dsingh29
Active User
Joined: 16 Dec 2008 Posts: 132 Location: IBM
|
|
|
|
Follow up.
Look for the STEPLIB or JOBLIB in the jcl, these would contain the load modules of the programs to be loaded. |
|
Back to top |
|
|
paramoberoi
New User
Joined: 26 Oct 2010 Posts: 12 Location: USA
|
|
|
|
Its precompiled by DSNHPC. Compiled by IGYCRCTL. Linked by HEWL. Apart from these there are some Changeman (Configuration management tool) specific steps in compile JCL.
Is there anything specific you want me to check? |
|
Back to top |
|
|
paramoberoi
New User
Joined: 26 Oct 2010 Posts: 12 Location: USA
|
|
|
|
I have following libraries concatenated in steplib of precompiling step
prefix.EXIT
prefix.DSNLOAD
prefix.EXIT contains following components
DSNHDECP
DSNHMCID
DSNTWR
DSN2PARM
DSN3@ATH
DSN3@SGN
DSN8EAE1 |
|
Back to top |
|
|
Dsingh29
Active User
Joined: 16 Dec 2008 Posts: 132 Location: IBM
|
|
|
|
There is no way a cobol-db2 is going to run without IKJEFT01. These are two different methods of providing program name to jcl.
1. when PGM=IKJEFT01, we provide program name via some parmlib
2. program name can also be given straight in PGM=program1. This doesnot mean that its running without IKJEFT01 . |
|
Back to top |
|
|
paramoberoi
New User
Joined: 26 Oct 2010 Posts: 12 Location: USA
|
|
|
|
[quote]
2. program name can also be given straight in PGM=program1. This doesnot mean that its running without IKJEFT01 .
How does IKJEFT01 comes ito picture if we give progname in PGM= parameter ? |
|
Back to top |
|
|
Dsingh29
Active User
Joined: 16 Dec 2008 Posts: 132 Location: IBM
|
|
|
|
That might be used in your site specific (changeman) compilation. |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 765 Location: Whitby, ON, Canada
|
|
|
|
Is the program statically linked? If so then look at the link input and figure out where DSNHLI is resolved from.
If not, then look at the STEPLIB concatenation for the job.
DSNHLI is set up as an ALIAS for one of the attachment facilities. A precompiler-generated call to DSNHLI will resolve to the attachment facility that is to be used.
Another possibility is that you are using Smart/Restart or other product that manages the connection for you. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
There is no way a cobol-db2 is going to run without IKJEFT01. |
Uh . . . Sure there is . . . You may not have used this but it has been around for quite a long time.
Quote: |
Call Attach Facility is used for application programs that run under batch to establish a connection with db2.It is an alternative to DSN command processor and provides |
|
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
Quote: |
There is no way a cobol-db2 is going to run without IKJEFT01. These are two different methods of providing program name to jcl.
2. program name can also be given straight in PGM=program1. This doesnot mean that its running without IKJEFT01 . |
both assertions are wrong
stop providing wrong informations, read the manuals or get proper training
did You ever hear about CAF for example ???
btdtgtts |
|
Back to top |
|
|
paramoberoi
New User
Joined: 26 Oct 2010 Posts: 12 Location: USA
|
|
|
|
Hello Don Leahy
Thanks for the guidance.
I checked that the program DSNHLI is dynamically linked as the compiler option is DYNAM. I saw that in the JCL an additional library is concatenated before prefix.EXIT and prefix.DSNLOAD libraries. This additional library contains DSNHLI which is an alias of the CAF attach module.
So in effect the DB2 connection is by CAF even if it mentions ATTACH(TSO) in precompiler option!
Thx again! |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
the same thing can be accomplished with RRSAF.
ATTACH(TSO), but the JOBLIB/STEPLIB references a DB2 load library for RRSAF with he attendent DSNHLI entry points. |
|
Back to top |
|
|
don.leahy
Active Member
Joined: 06 Jul 2010 Posts: 765 Location: Whitby, ON, Canada
|
|
|
|
ATTACH(TSO) is essentially the default. It causes the precompiler to generate calls to the DSNHLI language interface module. What DSNHLI resolves to (i.e. what program is actually used) can be controlled at execution time (if DYNAM) by careful use of concatenation in the STEPLIB. |
|
Back to top |
|
|
|