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:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Blaicher, Christopher Y. Sent: Thursday, December 19, 2013 11:57 AM To: IBM-MAIN@LISTSERV.UA.EDU 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: cblaic...@syncsort.com -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Robert Hahne Sent: Thursday, December 19, 2013 10:51 AM To: IBM-MAIN@LISTSERV.UA.EDU 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: cblaic...@syncsort.com > Subject: Re: APF authorization and JOBLIB DD card > To: IBM-MAIN@LISTSERV.UA.EDU > > 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: cblaic...@syncsort.com > > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] > On Behalf Of Pommier, Rex > Sent: Wednesday, December 18, 2013 6:07 PM > To: IBM-MAIN@LISTSERV.UA.EDU > 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 lists...@listserv.ua.edu 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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN