Chris et al,
Since I'm the OP, here is the detail of what has me so confused. Sorry for the
length of the post, but it's the only way to show why I'm befuddled. I read
your first post talking about the APF versus LINKLIST versus JOBLIB and I agree
with you - that was/is how I understood APF to work. However, the chain of
events below don't bear this understanding out. My guess is that SyncSort
might be doing some funky things under the covers but that is a WAG.
Here's the RD condensed version:
Job 1: abend 306, 2 non-APF syncsort libs in JOBLIB, abend on module in
SYNCRENT.
Job 2: abend 306, 1 non-APF lib in JOBLIB (I removed SYNCRENT so it would pull
from LNKLST), abend on module in SYNCLINK.
Job 3: RC=0, no JOBLIB, all SS modules coming from LNKLST.
Job 4: RC=0, APF authorized 2 SS libraries, only libraries in JOBLIB
Job 5: RC=0, 6 libs in JOBLIB including 2 APF SS libs, 1 lib not LNKLST, not
APF, 3 LNKLST, not specified APF (LNKAUTH=LNKLST)
Job 6: RC=0, added 7th lib to JOBLIB, new library definitely not either LNKLST
or APF
Job 7: abend 306, production job containing same concatenation as job 5. Abend
due to trying to load module from SYNCRENT - same as job 1.
Job 8: not shown here, I APF authorized the libraries in the JOBLIB and reran
job 7.
First job (with some allocation type snippage for brevity' sake - I also am
running something called VSAMTUNE but that doesn't seem to be having any
bearing here) Module SS14RC02 is in the SYNCRENT library in the JOBLIB
concatenation.
14.48.44 JOB01781 ---- WEDNESDAY, 18 DEC 2013 ----
14.48.44 JOB01781 IRR010I USERID RRP4912 IS ASSIGNED TO THIS JOB.
14.48.44 JOB01781 ICH70001I RRP4912 LAST ACCESS AT 14:48:09 ON WEDNESDAY,
DECEMBER 18, 2013
14.48.44 JOB01781 $HASP373 RRPIDCM STARTED - INIT 29 - CLASS T - SYS ZOS1
14.48.44 JOB01781 IEF403I RRPIDCM - STARTED - TIME=14.48.44
14.48.45 JOB01781 CSV019I REQUESTED MODULE SS14RC02 NOT ACCESSED, IS IN
NON-APF LIBRARY/CONCATENATION
14.48.45 JOB01781 CSV028I ABEND306-0C JOBNAME=RRPIDCM STEPNAME=STEP1
14.48.45 JOB01781 WER999A RRPIDCM ,STEP1 , - UNSUCCESSFUL SORT 306 S
REASON=0000000C
14.48.45 JOB01781 IEC130I SPYSET DD STATEMENT MISSING
14.48.45 JOB01781 IEA995I SYMPTOM DUMP OUTPUT 586
.
.
//RRPIDCM JOB (040423,495),RRP,CLASS=T,MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
IEFC653I SUBSTITUTION JCL - (040423,495),RRP,CLASS=T,MSGCLASS=X,MSG
//JOBLIB DD DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCLINK.NEW,DISP=SHR
<<<<<<These are not APF authorized at this point
// DD DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCRENT.NEW,DISP=SHR <<<<<<
verified by a D PROG,APF
//STEP1 EXEC PGM=IDCAMS
//BASECL DD DSN=TSD.REX.AG.AGENT.MASTER,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE TSD.REX.AG.AGENT.MASTER.AIX -
AIX -
PURGE
DEFINE AIX -
( NAME(TSD.REX.AG.AGENT.MASTER.AIX) -
RELATE(TSD.REX.AG.AGENT.MASTER) -
FREESPACE(0 0) -
KEYS(9 1383) -
RECORDSIZE(25 1508) -
SHAREOPTIONS(2 3) -
RECOVERY -
NONUNIQUEKEY) -
DATA -
( NAME(TSD.REX.AG.AGENT.MASTER.AIX.DATA) -
TRACKS(5 5) -
CISZ(8192)) -
INDEX -
( NAME(TSD.REX.AG.AGENT.MASTER.AIX.INDEX) -
TRACKS(1 1) -
CISZ(1024))
BIX INFILE (BASECL) -
ODS (TSD.REX.AG.AGENT.MASTER.AIX) -
NOSORTCALL
DEFINE PATH -
(NAME(TSD.REX.AG.AGENT.MASTER.PATH) -
PATHENTRY(TSD.REX.AG.AGENT.MASTER.AIX))
IDCAMS SYSTEM SERVICES
DELETE TSD.REX.AG.AGENT.MASTER.AIX -
AIX -
PURGE
IDC0550I ENTRY (R) TSD.REX.AG.AGENT.MASTER.PATH DELETED
IDC0550I ENTRY (D) TSD.REX.AG.AGENT.MASTER.AIX.DATA DELETED
IDC0550I ENTRY (I) TSD.REX.AG.AGENT.MASTER.AIX.INDEX DELETED
IDC0550I ENTRY (G) TSD.REX.AG.AGENT.MASTER.AIX DELETED
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
DEFINE AIX -
( NAME(TSD.REX.AG.AGENT.MASTER.AIX) -
RELATE(TSD.REX.AG.AGENT.MASTER) -
FREESPACE(0 0) -
KEYS(9 1383) -
RECORDSIZE(25 1508) -
SHAREOPTIONS(2 3) -
RECOVERY -
NONUNIQUEKEY) -
DATA -
( NAME(TSD.REX.AG.AGENT.MASTER.AIX.DATA) -
TRACKS(5 5) -
CISZ(8192)) -
INDEX -
( NAME(TSD.REX.AG.AGENT.MASTER.AIX.INDEX) -
TRACKS(1 1) -
CISZ(1024))
IDC0508I DATA ALLOCATION STATUS FOR VOLUME MRS070 IS 0
IDC0508I DATA ALLOCATION STATUS FOR VOLUME * IS 0
IDC0509I INDEX ALLOCATION STATUS FOR VOLUME MRS070 IS 0
IDC0509I INDEX ALLOCATION STATUS FOR VOLUME * IS 0
IDC0181I STORAGECLASS USED IS NORMAL
IDC0181I MANAGEMENTCLASS USED IS DUMPONLY
IDC0181I DATACLASS USED IS DCVSAM
***note the BIX doesn't even show up in the IDCAMS output.
Next job, I removed the SYNCRENT library from the concatenation, thereby
allowing SS14RC02 to be loaded from the older SYNCRENT library in the LINKLIST.
This job abends on module SS14A32, located in the SYNCLINK library.
14.49.46 JOB01818 $HASP373 RRPIDCM STARTED - INIT 29 - CLASS T - SYS ZOS1
14.49.46 JOB01818 IEF403I RRPIDCM - STARTED - TIME=14.49.46
14.49.47 JOB01818 CSV019I REQUESTED MODULE SS14A32 NOT ACCESSED, IS IN
NON-APF LIBRARY/CONCATENATION
14.49.47 JOB01818 CSV028I ABEND306-0C JOBNAME=RRPIDCM STEPNAME=STEP1
14.49.47 JOB01818 WER999A RRPIDCM ,STEP1 , - UNSUCCESSFUL SORT 306 S
REASON=0000000C
14.49.47 JOB01818 IEC130I SPYSET DD STATEMENT MISSING
14.49.47 JOB01818 IEA995I SYMPTOM DUMP OUTPUT 964
.
.
//RRPIDCM JOB (040423,495),RRP,CLASS=T,MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
IEFC653I SUBSTITUTION JCL - (040423,495),RRP,CLASS=T,MSGCLASS=X,MSGLEVEL
//JOBLIB DD DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCLINK.NEW,DISP=SHR
//* DD DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCRENT.NEW,DISP=SHR
//STEP1 EXEC PGM=IDCAMS
//BASECL DD DSN=TSD.REX.AG.AGENT.MASTER,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
.
Same delete/define/BIX as first job, again the output doesn't show the BIX
command as being executed.
.
.
.
Next test I completely removed the JOBLIB and the job ran fine which was
expected:
14.50.27 JOB01822 $HASP373 RRPIDCM STARTED - INIT 29 - CLASS T - SYS ZOS1
14.50.27 JOB01822 IEF403I RRPIDCM - STARTED - TIME=14.50.27
14.50.28 JOB01822 - -----TIMINGS
(MINS.)------
14.50.28 JOB01822 -STEPNAME PROCSTEP RC EXCP CONN TCB SRB
CLOCK
14.50.28 JOB01822 -STEP1 00 250 306 .00 .00
.0
14.50.28 JOB01822 IEF404I RRPIDCM - ENDED - TIME=14.50.28
//RRPIDCM JOB (040423,495),RRP,CLASS=T,MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//*JOBLIB DD DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCLINK.NEW,DISP=SHR
//* DD DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCRENT.NEW,DISP=SHR
//STEP1 EXEC PGM=IDCAMS
//BASECL DD DSN=TSD.REX.AG.AGENT.MASTER,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
.
.
Same sysin
.
.
DELETE TSD.REX.AG.AGENT.MASTER.AIX -
AIX -
PURGE
IDC0550I ENTRY (D) TSD.REX.AG.AGENT.MASTER.AIX.DATA DELETED
IDC0550I ENTRY (I) TSD.REX.AG.AGENT.MASTER.AIX.INDEX DELETED
IDC0550I ENTRY (G) TSD.REX.AG.AGENT.MASTER.AIX DELETED
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
DEFINE AIX -
( NAME(TSD.REX.AG.AGENT.MASTER.AIX) -
RELATE(TSD.REX.AG.AGENT.MASTER) -
.
. snippage of successful define
.
IDC0181I STORAGECLASS USED IS NORMAL
IDC0181I MANAGEMENTCLASS USED IS DUMPONLY
IDC0181I DATACLASS USED IS DCVSAM
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
BIX INFILE (BASECL) -
ODS (TSD.REX.AG.AGENT.MASTER.AIX) -
INTERNALSORT
IDC0652I TSD.REX.AG.AGENT.MASTER.AIX SUCCESSFULLY BUILT
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
Next test I APF authorized the 2 SyncSort libraries and then reran my test. As
expected, it ran clean.
14.54.50 JOB01906 $HASP373 RRPIDCM STARTED - INIT 29 - CLASS T - SYS ZOS1
14.54.50 JOB01906 IEF403I RRPIDCM - STARTED - TIME=14.54.50
14.54.52 JOB01906 - -----TIMINGS
(MINS.)------
14.54.52 JOB01906 -STEPNAME PROCSTEP RC EXCP CONN TCB SRB
CLOCK
14.54.52 JOB01906 -STEP1 00 273 400 .00 .00
.0
14.54.52 JOB01906 IEF404I RRPIDCM - ENDED - TIME=14.54.52
//RRPIDCM JOB (040423,495),RRP,CLASS=T,MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//JOBLIB DD DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCLINK.NEW,DISP=SHR
// DD DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCRENT.NEW,DISP=SHR
//STEP1 EXEC PGM=IDCAMS
//BASECL DD DSN=TSD.REX.AG.AGENT.MASTER,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
.
. same SYSIN cards
.
DELETE TSD.REX.AG.AGENT.MASTER.AIX -
AIX -
PURGE
IDC0550I ENTRY (R) TSD.REX.AG.AGENT.MASTER.PATH DELETED
IDC0550I ENTRY (D) TSD.REX.AG.AGENT.MASTER.AIX.DATA DELETED
IDC0550I ENTRY (I) TSD.REX.AG.AGENT.MASTER.AIX.INDEX DELETED
IDC0550I ENTRY (G) TSD.REX.AG.AGENT.MASTER.AIX DELETED
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
DEFINE AIX -
( NAME(TSD.REX.AG.AGENT.MASTER.AIX) -
.
.
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
BIX INFILE (BASECL) -
ODS (TSD.REX.AG.AGENT.MASTER.AIX) -
NOSORTCALL
IDC0652I TSD.REX.AG.AGENT.MASTER.AIX SUCCESSFULLY BUILT
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
DEFINE PATH -
(NAME(TSD.REX.AG.AGENT.MASTER.PATH) -
PATHENTRY(TSD.REX.AG.AGENT.MASTER.AIX))
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0
Now is where it gets strange: I added several additional libraries to the
JOBLIB. Three of the libraries are in the LINKLIST which is defined as
LINKAUTH but one (the first) is not. None of them was in the APF list. I also
verified based off one of the responses, that neither IDCAMS nor any of the
SyncSort modules are in any of these additional libraries, so nothing should be
loaded from any of them. The only thing that should be loaded from the JOBLIB
would be the SyncSort modules. My thought was that the job SHOULD fail, due to
the SS modules being now loaded from non-APF libraries, since they are in a
mixed JOBLIB. This is the way it is supposed to work, right? -where anything
loaded from the JOBLIB will be loaded unauthorized because some of the
libraries aren't authorized? The job ran clean.
15.45.52 JOB02877 $HASP373 RRPIDCM STARTED - INIT 29 - CLASS T - SYS ZOS1
15.45.52 JOB02877 IEF403I RRPIDCM - STARTED - TIME=15.45.52
15.45.56 JOB02877 - -----TIMINGS
(MINS.)------
15.45.56 JOB02877 -STEPNAME PROCSTEP RC EXCP CONN TCB SRB
CLOCK
15.45.56 JOB02877 -STEP1 00 356 489 .00 .00
.0
15.45.56 JOB02877 IEF404I RRPIDCM - ENDED - TIME=15.45.56
15.45.56 JOB02877 -RRPIDCM ENDED. NAME-RRP TOTAL TCB CPU
TIME=
15.45.56 JOB02877 $HASP395 RRPIDCM ENDED
//RRPIDCM JOB (040423,495),RRP,CLASS=T,MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//JOBLIB DD DSN=MNL.TEST.VALD.LOADLIB,DISP=SHR <<< not in
LL, not APF
// DD DSN=CMAN.L70P.EMER.LOADLIB,DISP=SHR <<< in LL,
not specifically APF
// DD DSN=SYS1.MNL.PROD.VALD.LOADLIB,DISP=SHR <<< in LL,
not specifically APF
// DD DSN=SYS1.SFG1B.SYNCSORT.R13.SYNCLINK,DISP=SHR <<< in LL,
not specifically APF
// DD DISP=SHR,DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCLINK.NEW << not in
LL, specified in APF
// DD DISP=SHR,DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCRENT.NEW << not in
LL, specified in APF
//STEP1 EXEC PGM=IDCAMS
//BASECL DD DSN=TSD.REX.AG.AGENT.MASTER,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
.
. same SYSIN
.
BIX INFILE (BASECL) -
ODS (TSD.REX.AG.AGENT.MASTER.AIX) -
NOSORTCALL
IDC0652I TSD.REX.AG.AGENT.MASTER.AIX SUCCESSFULLY BUILT
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
So, to make absolutely, positively sure there was at least one non-APF
authorized library in the concatenation, I created a new library, and added it
to the JOBLIB and reran the job. Once again the job ran clean. Only showing
JCL change here for brevity sake.
//RRPIDCM JOB (040423,495),RRP,CLASS=T,MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//JOBLIB DD DSN=MNL.TEST.VALD.LOADLIB,DISP=SHR
// DD DSN=CMAN.L70P.EMER.LOADLIB,DISP=SHR
// DD DSN=SYS1.MNL.PROD.VALD.LOADLIB,DISP=SHR
// DD DSN=RRP4912.LOADLIB,DISP=SHR <<< new empty
library, not APF
// DD DISP=SHR,DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCLINK.NEW
// DD DISP=SHR,DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCRENT.NEW
//STEP1 EXEC PGM=IDCAMS
//BASECL DD DSN=TSD.REX.AG.AGENT.MASTER,DISP=SHR
//SYSPRINT DD SYSOUT=*
So by this time, I am thinking that my understanding of how APF modules is
sorely lacking, and the whole mixed JOBLIB being not authorized is somehow a
figment of my imagination and incorrect reading of the available documentation,
I posted my original questions and went home. Later last evening I got a call
from operations due to a batch job abend - 306-0C. Here's the relevant 'stuff'
from this abended job which abended in STEP040:
19.28.21 JOB05240 -STEP035 00 186 306 .00 .00
.0 30 TS
19.28.26 JOB05240 CSV019I REQUESTED MODULE SS14RC02 NOT ACCESSED, IS IN
NON-APF LIBRARY/CONCATENATION
19.28.26 JOB05240 CSV028I ABEND306-0C JOBNAME=PBD125T STEPNAME=AMSDEF
19.28.26 JOB05240 WER999A PBD125T ,STEP040 ,AMSDEF - UNSUCCESSFUL SORT 306 S
REASON=0000000C
19.28.26 JOB05240 IEC130I SPYSET DD STATEMENT MISSING
19.28.26 JOB05240 IEA995I SYMPTOM DUMP OUTPUT 069
069 SYSTEM COMPLETION CODE=306 REASON CODE=0000000C
//PBD125T JOB 070352,TEST-SYSTEM,CLASS=Z,MSGCLASS=X,
// MSGLEVEL=(1,1),PERFORM=21
//JOBL INCLUDE MEMBER=TCJLIB
XXJOBLIB DD DSN=MNL.TEST.VALD.LOADLIB,DISP=SHR
<<<<JOBLIB concatenation is same as
XX DD DSN=CMAN.L70P.EMER.LOADLIB,DISP=SHR
<<<<working test jobs from above
XX DD DSN=SYS1.MNL.PROD.VALD.LOADLIB,DISP=SHR
XX DD DSN=SYS1.MNL.PROD.LOADLIB,DISP=SHR
XX DD DISP=SHR,DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCLINK.NEW
XX DD DISP=SHR,DSN=SYS1.SFG1B.SYNCSORT.R14.SYNCRENT.NEW
//*
//STEP040 EXEC PROC=MNLAMST,MEMBER=PB0095
XXMNLAMST PROC MEMBER='NONE',MAXRC='8'
XXAMSDEF EXEC PGM=IDCAMS
XXSYSPRINT DD SYSOUT=*
XXSYSIN DD DSN=MNL2.DP.TEST.AMS.CARDLIB(&MEMBER),DISP=SHR
IEFC653I SUBSTITUTION JCL - DSN=MNL2.DP.TEST.AMS.CARDLIB(PB0095),DISP=SHR
(content of member PB0095)
DELETE TSD.UTS.PB.SALARY.CONAME.AIX -
AIX -
PURGE
DEFINE AIX -
NAME('TSD.UTS.PB.SALARY.CONAME.AIX') -
RELATE('TSD.UTS.PB.SALARY.DEDUCT') -
FREESPACE(0 0) -
KEYS(35 9) -
RECORDSIZE(5 1000) -
SHAREOPTIONS(3 3) -
RECOVERY -
NONUNIQUEKEY -
UPGRADE) -
DATA -
NAME('TSD.UTS.PB.SALARY.CONAME.AIX.DATA') -
CYLINDERS(2 1) -
CISZ(6144)) -
INDEX -
NAME('TSD.UTS.PB.SALARY.CONAME.AIX.INDEX') -
TRACKS(1 1) -
CISZ(1536))
BIX IDS ('TSD.UTS.PB.SALARY.DEDUCT') -
ODS ('TSD.UTS.PB.SALARY.CONAME.AIX') -
INTERNALSORT
DEFINE PATH -
( NAME('TSD.UTS.PB.SALARY.CONAME.PATH') -
PATHENTRY('TSD.UTS.PB.SALARY.CONAME.AIX') -
UPDATE)
IF LASTCC = 0 THEN -
LISTCAT -
ENTRIES (TSD.UTS.PB.SALARY.DEDUCT -
TSD.UTS.PB.SALARY.CONAME.AIX -
TSD.UTS.PB.SALARY.CONAME.PATH)
Job output from abended step:
IDCAMS SYSTEM SERVICES TIME:
DELETE TSD.UTS.PB.SALARY.DEDUCT -
CLUSTER -
PURGE
IDC0550I ENTRY (R) TSD.UTS.PB.SALARY.CONAME.PATH DELETED
IDC0550I ENTRY (D) TSD.UTS.PB.SALARY.CONAME.AIX.DATA DELETED
IDC0550I ENTRY (I) TSD.UTS.PB.SALARY.CONAME.AIX.INDEX DELETED
IDC0550I ENTRY (G) TSD.UTS.PB.SALARY.CONAME.AIX DELETED
IDC0550I ENTRY (D) TSD.UTS.PB.SALARY.DEDUCT.DATA DELETED
IDC0550I ENTRY (I) TSD.UTS.PB.SALARY.DEDUCT.INDEX DELETED
IDC0550I ENTRY (C) TSD.UTS.PB.SALARY.DEDUCT DELETED
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
DEFINE CLUSTER -
( NAME(TSD.UTS.PB.SALARY.DEDUCT) -
INDEXED -
FREESPACE(19 0) -
KEYS(8 0) -
RECORDSIZE(300 300) -
NOREUSE -
SHAREOPTIONS(2 3) -
SPEED) -
DATA -
( NAME(TSD.UTS.PB.SALARY.DEDUCT.DATA) -
CYLINDERS(7 1) -
CISZ(8192)) -
INDEX -
( NAME(TSD.UTS.PB.SALARY.DEDUCT.INDEX) -
TRACKS(1 1) -
CISZ(2048))
IDC0508I DATA ALLOCATION STATUS FOR VOLUME MRS004 IS 0
IDC0508I DATA ALLOCATION STATUS FOR VOLUME * IS 0
IDC0508I DATA ALLOCATION STATUS FOR VOLUME * IS 0
IDC0508I DATA ALLOCATION STATUS FOR VOLUME * IS 0
IDC0509I INDEX ALLOCATION STATUS FOR VOLUME MRS004 IS 0
IDC0509I INDEX ALLOCATION STATUS FOR VOLUME * IS 0
IDC0509I INDEX ALLOCATION STATUS FOR VOLUME * IS 0
IDC0509I INDEX ALLOCATION STATUS FOR VOLUME * IS 0
IDC0181I STORAGECLASS USED IS NORMAL
IDC0181I MANAGEMENTCLASS USED IS DUMPONLY
IDC0181I DATACLASS USED IS DCVSAM
IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0
IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0
No BIX mentioned at all!!!!!
I came in, APF authorized the 4 libraries at the beginning of the JOBLIB
concatenation, and the job ran clean.
How can it be that 2 jobs, using the same JOBLIB concatenations, performing the
same IDCAMS BIX function, will have one abend with APF failure, and the other
work? All the jobs have the sort modules as well as IDCAMS in the Linklist, as
I documented above, the jobs that failed originally had the sort modules in a
non-APF JOBLIB concatenation. All my test jobs that worked had the sort
modules in APF authorized libraries that sometimes should have been marked
non-APF due to being in a mixed JOBLIB concatenation, and the scheduled job
failed due to having the same JOBLIB in a mixed concatenation and then worked
once all the libraries were specifically authorized.
Do I have a right to be confused now? :-(
Rex
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Blaicher, Christopher Y.
Sent: Thursday, December 19, 2013 11:57 AM
To: [email protected]
Subject: Re: APF authorization and JOBLIB DD card
I think I covered that, but obviously not well enough.
If no called/loaded modules exist in the JOBLIB/STEPLIB, and all are in the
LINKLIST, then that meets the requirement that all LOADs occur from authorized
libraries. It doesn't matter if JOBLIB/STEPLIB are authorized or not.
I think he got away with it because one of the tests was run where all the sort
modules were in the LINKLIST. He then ran it with the sort libraries also in
the JOBLIB/STEPLIB concatenations that included an unauthorized library and
that failed with a 306.
It's all a question of where modules get loaded from. To be certain of things,
I would need to see the concatenations and the APF library list at each run
time.
Chris Blaicher
Principal Software Engineer, Software Development
Syncsort Incorporated
50 Tice Boulevard, Woodcliff Lake, NJ 07677
P: 201-930-8260 | M: 512-627-3803
E: [email protected]
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Robert Hahne
Sent: Thursday, December 19, 2013 10:51 AM
To: [email protected]
Subject: Re: APF authorization and JOBLIB DD card
Hello Chris ,
This is a very good explanation . But that still leaves OP's last question
"If IDCAMS requires APF authorization for called modules, why does IDCAMS work
when the JOBLIB is supposedly not authorized by introducing a non-authorized
library to the JOBLIB? "
I assume OP ran the job by APF authorizing the JOBLIBS first , and then tried
another run by adding an unauthorized library to the JOBLIB concatenation .
TIA ,
Bob
> Date: Thu, 19 Dec 2013 00:58:00 +0000
> From: [email protected]
> Subject: Re: APF authorization and JOBLIB DD card
> To: [email protected]
>
> I will answer the APF questions, but I strongly suggest that you call
> SyncSort Support in the morning if you continue to have ABEND 306 problems.
>
> The short answer is that any module loaded by an authorized program must come
> from an authorized library. Loaded modules don't have to be authorized
> (AC=1), they just have to come from an authorized library. Now it gets more
> complicated.
>
> Most people think that all LINKLIST libraries are authorized, but that isn't
> always true. If your site has LNKAUTH=APFTAB as a parm in IEASYSxx rather
> than taking the default or specifying LNKAUTH=LNKLST, then only those
> libraries that are in the APF table are considered authorized.
>
> JOBLIB and STEPLIB libraries are handled a little differently. They are
> either all authorized or all not authorized. So, if you have a three library
> concatenation and they are all authorized, life is good. If you add a
> non-authorized library to then, then they are all considered un-authorized.
>
> When you ran an IDCAMS job with all modules used in the linklist, it was OK
> because it didn't get any modules from JOBLIB. Your site must be taking the
> default or specifying LNKAUTH=LNKLST. When you put the same libraries in the
> JOBLIB concatenation, and any one of them isn't in the APF table, then all of
> the JOBLIB libraries become un-authorized, even if the libraries are still in
> the LINKLIST. Because the search is STEPLIB first, JOBLIB second (or first
> if no STEPLIB) and then the LINKLIST and it found the module it wanted in the
> JOBLIB and the JOBLIB concatenation was not authorized because one or more
> libraries weren't, then you get the ABEND 306.
>
> Confused enough?
>
> Chris Blaicher
> Principal Software Engineer, Software Development Syncsort
> Incorporated
> 50 Tice Boulevard, Woodcliff Lake, NJ 07677
> P: 201-930-8260 | M: 512-627-3803
> E: [email protected]
>
>
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:[email protected]]
> On Behalf Of Pommier, Rex
> Sent: Wednesday, December 18, 2013 6:07 PM
> To: [email protected]
> Subject: APF authorization and JOBLIB DD card
>
> Hi list,
>
> I'm confused - again. I thought I knew how APF authorization works with
> JOBLIB statements but apparently I don't. Here's the background. I'm
> installing a new maintenance level of SyncSort. According to the SyncSort
> manual, the only library that needs APF authorization is the SYNCAUTH library
> which contains the Dynamic Storage Management modules.
>
> In addition, IDCAMS internally calls a SORT module by default when performing
> a BuildIndeX function.
>
> Here's my scenario. I have batch jobs with JOBLIB statements in them. In
> order to test my SyncSort upgrade, I have added the SYNCLINK and SYNCRENT
> libraries to the JOBLIB concatenation.
>
> Where I'm hitting the problem is IDCAMS BIX function. When I run the IDCAMS
> job with just the normal JOBLIB without the SyncSort libraries in it, the job
> runs fine - presumably using the SyncSort currently in the LinkList. The
> JOBLIB is not APF authorized because it has a mixture of authorized and not
> authorized libraries in it. I add the new SyncSort libraries to the JOBLIB
> and the IDCAMS fails with a S306-0C abend and message "CSV019I REQUESTED
> MODULE SS14RC02 NOT ACCESSED, IS IN NON-APF LIBRARY/CONCATENATION". Module
> SS14RC02 is linked AC=0 and is in the SYNCRENT library. I added all the
> JOBLIB libraries to the APF list and the IDCAMS step runs fine. I then add a
> non-APF authorized library to the JOBLIB and the IDCAMS step STILL runs fine!
>
>
> Why is IDCAMS demanding that non-APF module SS14RC02 be loaded from an APF
> authorized library?
>
> If IDCAMS requires APF authorization for called modules, why does IDCAMS work
> when the JOBLIB is supposedly not authorized by introducing a non-authorized
> library to the JOBLIB?
>
> TIA
>
> Rex
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
The information contained in this message is confidential, protected from
disclosure and may be legally privileged. If the reader of this message is not
the intended recipient or an employee or agent responsible for delivering this
message to the intended recipient, you are hereby notified that any disclosure,
distribution, copying, or any action taken or action omitted in reliance on it,
is strictly prohibited and may be unlawful. If you have received this
communication in error, please notify us immediately by replying to this
message and destroy the material in its entirety, whether in electronic or hard
copy format. Thank you.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN