IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Query on Overrides for load program's source


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
sunny_io

New User


Joined: 11 Jul 2007
Posts: 68
Location: noida

PostPosted: Thu Jul 22, 2010 4:31 pm
Reply with quote

Hi All.

I have the following JCL

Code:
000001 //FxxxxxxD JOB (xxxxxxxx),'ACC ACCC ',                       
000002 // CLASS=8,MSGCLASS=9,NOTIFY=&SYSUID,                                   
000003 // REGION=0M,TIME=10,                                                   
000004 // USER=mee,PASSWORD=                                                   
000005 /*JOBPARM      COPIES=001,LINES=999                                     
000006 //JLIB  JCLLIB ORDER=(XXXX.PROCLIB)                                     
000007 //     INCLUDE MEMBER=UCSENV                                           
000008 //     INCLUDE MEMBER=UCSSYMBJ                                         
000009 //         SET TEMPLIB='PRD.XXXXXX.TESTLIB'       
000010 //**********************************************************************
000011 //** NOTE: SET GDG0 TO '-1' WHEN RESTARTING AFTER JS010.PS001.        **
000012 //**       SET GDG1 TO '+0' WHEN RESTARTING AFTER JS010.PS001.        **
000013 //**********************************************************************
000014 //JS010   EXEC SSS3300,                                                 
000015 //             GDG0='+0',                                               
000016 //             GDG1='+1'                                               


Here the module called inside the proc sss3300 is not being picked from the loadlib "prd.xxxxxx.testlib" rather from "xxxx.testlib"

There is a statement in UCSSYMBJ as follows.

// SET TEMPLIB='xxxx.TESTLIB'
// SET TESTLIB='xxxx.TESTLIB'

manual says that a subsequent SET statement overides the previous one.
Not sure why the module concerned is being picked from the xxxx.testlib.
Any pointers on what i should check ?
TIA
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


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

PostPosted: Thu Jul 22, 2010 4:36 pm
Reply with quote

Quote:
// SET TEMPLIB='xxxx.TESTLIB'
// SET TESTLIB='xxxx.TESTLIB'

manual says that a subsequent SET statement overides the previous one.


only if they affect the same symbolic.
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


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

PostPosted: Thu Jul 22, 2010 4:44 pm
Reply with quote

Quote:
000008 // INCLUDE MEMBER=UCSSYMBJ
000009 // SET TEMPLIB='PRD.XXXXXX.TESTLIB'
You "re-set" TEMPLIB not TESTLIB - make usre, you re-set the correct symbolic in UCSSYMBJ.
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1205
Location: Dublin, Ireland

PostPosted: Thu Jul 22, 2010 4:45 pm
Reply with quote

Presumably the step in proc sss3300 that references the program has a STEPLIB that is resolved by &TEMPLIB ??

Garry.
Back to top
View user's profile Send private message
sunny_io

New User


Joined: 11 Jul 2007
Posts: 68
Location: noida

PostPosted: Thu Jul 22, 2010 5:16 pm
Reply with quote

Hi All.

1) sss3300 doesn't have a steplib

2) here is ucssymbj
Code:
Command ===>                                                  Scroll ===> CSR 
000001 //         SET LOADLIB='xxxx.LOADLIB'                   * PROD LOAD LIB
000002 //         SET TEMPLIB='XXXX.TESTLIB'                     * 1ST TESTLIB
000003 //         SET TESTLIB='XXXX.TESTLIB'                     * 2ND TESTLIB


While I tried looking at manuals for LOADLIB etc explanation i couldn't find any .. I am still stuck .. Pls share if there is more i can show here to invite suggestions for my problem .

* kindly note the jcl set command is after ucssymbj is included so should override it

TIA
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


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

PostPosted: Thu Jul 22, 2010 5:18 pm
Reply with quote

Well, have you looked at what Dick (and I) had said?
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1205
Location: Dublin, Ireland

PostPosted: Thu Jul 22, 2010 5:23 pm
Reply with quote

Quote:
1) sss3300 doesn't have a steplib


How does sss3300 know where to find the program to execute? If you have a STEPLIB, it searches that library first, then looks for JOBLIB and then searches the system libraries.

You don't have JOBLIB in what you've shown and you say you don't have a STEPLIB so it would seem that you are getting the module from a linklist library.

Can you show the sss3300 procedure so we can see where TESTLIB and TEMPLIB are referenced?

Garry.
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


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

PostPosted: Thu Jul 22, 2010 5:26 pm
Reply with quote

how about cut&paste the 2d DSID of the jes output
(the one where the expanded jcl is shown)
when you ran the program.

In fact, you can execute the JOB with TYPRUN=SCAN,
thus not really running the job,
yet will supply you with the data that you have to supply us,
in order to determine your problem.....
Back to top
View user's profile Send private message
sunny_io

New User


Joined: 11 Jul 2007
Posts: 68
Location: noida

PostPosted: Thu Jul 22, 2010 5:32 pm
Reply with quote

Hello ,

As anuj suggsted , i did the following :

Code:
//JLIB  JCLLIB ORDER=(xxxx.PROCLIB)         
//     INCLUDE MEMBER=UCSENV               
//     INCLUDE MEMBER=UCSSYMBJ             
//     SET TESTLIB='PRD.xxxxxx.TESTLIB'     

--- result : didn't pick the module from these libraries

Then i tried doing it for both :

Code:
//JLIB  JCLLIB ORDER=(xxxx.PROCLIB)         
//     INCLUDE MEMBER=UCSENV               
//     INCLUDE MEMBER=UCSSYMBJ             
//     SET TESTLIB='PRD.xxxxxx.TESTLIB'     
//     SET TEMPLIB='PRD.xxxxxx.TESTLIB'     

result : module gets picked from here

Not too sure about the reasons.
As the include members mentions templib and testlb as just 1st and 2nd testlibs
Code:
Command ===>                                                  Scroll ===> CSR 
000001 //         SET LOADLIB='xxxx.LOADLIB'                   * PROD LOAD LIB
000002 //         SET TEMPLIB='XXXX.TESTLIB'                     * 1ST TESTLIB
000003 //         SET TESTLIB='XXXX.TESTLIB'                     * 2ND TESTLIB


Thank you all for your time
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


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

PostPosted: Thu Jul 22, 2010 5:41 pm
Reply with quote

Then you should read again what Garry has suggested:
Quote:
How does sss3300 know where to find the program to execute? If you have a STEPLIB, it searches that library first, then looks for JOBLIB and then searches the system libraries


And for an experiment and keeping in mind what you've posted so far, I'd say just use:
Quote:
//JLIB JCLLIB ORDER=(xxxx.PROCLIB)
// INCLUDE MEMBER=UCSENV
// INCLUDE MEMBER=UCSSYMBJ
// SET TEMPLIB='PRD.xxxxxx.TESTLIB'
it should work.
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


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

PostPosted: Thu Jul 22, 2010 6:08 pm
Reply with quote

Quote:
Not too sure about the reasons.


that is because you have not supplied us with the expanded job as requested.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Thu Jul 22, 2010 8:08 pm
Reply with quote

Hello,

Quote:
Not too sure about the reasons.
As you are not willing to post the info needed to actually help you or explain, we can only guess that you have incomplete/incorrect jcl. . .
Back to top
View user's profile Send private message
venkat.bmw
Warnings : 2

New User


Joined: 05 May 2009
Posts: 21
Location: India

PostPosted: Tue Jul 27, 2010 10:01 pm
Reply with quote

Hi Sunny,

The SET statement lets you set the values of symbolic parameters within a JCL or PROC member.

I think you are trying to give dataset(LOADLIB) in the SET statement.

JCL will RUN fine but the pgm will be picked from your JOBLIB.

For example , Run ur JCL with same SET statements and with diff joblib which doesnot have ur pgm (proc sss3300) . It will abend .

Try like this

// JCLLIB ORDER=SIMOTIME.PDS.JCLINC
24 // INCLUDE MEMBER=JCLINCI1
##*
##* *******************************************************************
##* SET Values from the JCLINCI1.INC Member.
## SET HLQ01=SIMOTEST
## SET HLQ02=TEMP
25 //* *******************************************************************
26 //* Step 1 of 2 This job step will delete a previously created
27 //* hex-dump file.
28 //*
29 //TAKEAWAY EXEC PGM=IEFBR14
30 //TESTFILE DD DSN=&HLQ01..&HLQ02..TESTFILE,DISP= (MOD,DELETE,DELETE),
SUBSTITUTION - DSN=SIMOTEST.TEMP.TESTFILE,DISP=(MOD,DELETE,DELETE),
31 // STORCLAS=MFI,
32 // SPACE=(TRK,5),
33 // DCB=(RECFM=V,LRECL=80,DSORG=PS)
34 //*

Hope this helps you.
Back to top
View user's profile Send private message
dneufarth

Active User


Joined: 27 Apr 2005
Posts: 420
Location: Inside the SPEW (Southwest Ohio, USA)

PostPosted: Wed Jul 28, 2010 3:33 am
Reply with quote

Garry,

If STEPLIB specified, isn't JOBLIB totally ignored? Need a brain refresh. Manual says order is STEPLIB then system libs if JOBLIB exists.
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1205
Location: Dublin, Ireland

PostPosted: Wed Jul 28, 2010 12:16 pm
Reply with quote

Dave,
Quote:
If STEPLIB specified, isn't JOBLIB totally ignored?


Yes. Without wanting to go into detail, my point was that the OP was suggesting that there was no STEPLIB for the override. We also saw no evidence of JOBLIB, so I questioned where the library was being specified. If the program was being loaded from a system library, then no overide would change this.

Garry.
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1702
Location: Australia

PostPosted: Wed Jul 28, 2010 1:28 pm
Reply with quote

Hi Garry,

are you sure you cannot override the system libraries ?
unless I'm misunderstanding the below
Quote:
Program Search Order:

The program search order for MVS uses the following program
libraries in the order given:

1) JOB Pack Area (already loaded programs)
2) Private task library, if specified.
3) STEPLIB library, if specified.
4) JOBLIB library, if specified, AND no STEPLIB is
specified
5) Link Pack Area (PLPA)
6) System Link List (i.e., SYS1.LINKLIB and the data sets
concatenated to it).



Gerry
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1205
Location: Dublin, Ireland

PostPosted: Wed Jul 28, 2010 1:59 pm
Reply with quote

One can override system libraries by specifying in the JCL the library to be used.

The OP had a symbolic parameter override which would require a library using that symbolic to have been already specified in JCL. The OP claimed that there was no such STEPLIB and the job shown had no JOBLIB.

Garry.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Need help with ADABAS query (COBOL-AD... All Other Mainframe Topics 0
No new posts Error to invoke MPP program through B... IMS DB/DC 3
No new posts Unload and Load ISPF Table TSO/ISPF 4
No new posts Using API Gateway from CICS program CICS 0
No new posts Load new table with Old unload - DB2 DB2 6
Search our Forums:

Back to Top