View previous topic :: View next topic
|
Author |
Message |
sunny_io
New User
Joined: 11 Jul 2007 Posts: 68 Location: noida
|
|
|
|
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 |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
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 |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
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 |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
|
|
|
|
Presumably the step in proc sss3300 that references the program has a STEPLIB that is resolved by &TEMPLIB ??
Garry. |
|
Back to top |
|
|
sunny_io
New User
Joined: 11 Jul 2007 Posts: 68 Location: noida
|
|
|
|
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 |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
Well, have you looked at what Dick (and I) had said? |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
|
|
|
|
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 |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
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 |
|
|
sunny_io
New User
Joined: 11 Jul 2007 Posts: 68 Location: noida
|
|
|
|
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 |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
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 |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
Quote: |
Not too sure about the reasons. |
that is because you have not supplied us with the expanded job as requested. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
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 |
|
|
venkat.bmw Warnings : 2 New User
Joined: 05 May 2009 Posts: 21 Location: India
|
|
|
|
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 |
|
|
dneufarth
Active User
Joined: 27 Apr 2005 Posts: 420 Location: Inside the SPEW (Southwest Ohio, USA)
|
|
|
|
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 |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
|
|
|
|
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 |
|
|
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 1702 Location: Australia
|
|
|
|
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 |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
|
|
|
|
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 |
|
|
|