Вызываю JCL. В LNKLST лежат модули A1,B1,C1,D1. В STEPLIB лежат A2,C2. В JOBLIB A3,B3. (одинаковая буква означает тот же модуль, но цифра что он другой версии) Я вызываю из шага A,B,C,D. Какие версии вызовутся? (ответ в виде Ax,Bx,Cx,Dx)
Просил же, не подсматривать. Я надеюсь это был саркастический ответ. Ибо согласно тому, что по ссылке, ответ в посте номер 2 - не верный. (с чем я сегодня себя тоже поздравил)
Последнее предложение не смущает? Оно о чем говорит?
Получается, что если есть STEPLIB, то в этом STEPе JOBLIB игнорируется, и будет искать в LNKLST. А если есть несколько STEPов, и в остальных нету STEPLIBа - то в них будет приоритет у JOBLIB.
Вот именно из за таких фраз мы и живем в неведении. Слова "override" и "приоритет" чаще понимаются как очередь, что будет если модуль и там и там. А на деле только одно из двух. Либо одно, либо никто.
Э... Тут я уже имел в виду приоритет JOBLIB перед LNKLST при отсутствии STEPLIB! А они таки - очередь.
Я знаю. Но так как это явно не ДОписано, то и возникают ложные суждения. Мне всю жизнь говорили, что STEPLIB важнее JOBLIB, но никто неДОговорил, что он отменяет JOBLIB.
А теперь у меня ситуация что мы генерируем JOBLIB-ы для PROCLIB-ов как разные версии продуктов. А в тех шагах которые ссылаются на доп библы через STEPLIB происходят чудесные чудеса. И я не вижу красивого решения. Только решить, что STEPLIB - зло! А любые библиотеки надо дописывать в JOBLIB, даже если они реально используются в одной процедуре из сотни получивших этот JOBLIB.
ps: ну не LNKLST мне же переключать для разных версий...
А почему должен получиться большой STEPLIB для каждого шага? Он будет размером с самый большой STEPLIB. А как я понял, если делать большой JOBLIB , то он будет размером в сумму всех библиотек. Я имелл в виду что-то типа такого:
Code
// SET LOADLIB1=KUKU // SET LOADLIB2=KUKU // SET LOADLIB3=KUKU //STEP1 EXEC PGM=PGM1 //STEPLIB DD DISP=SHR,DSN=&LOADLIB1 // DD DISP=SHR,DSN=&LOADLIB2 // DD DISP=SHR,DSN=&LOADLIB3 //* // SET LOADLIB1=КОKО // SET LOADLIB2=KIKI // SET LOADLIB3=KАKА //STEP2 EXEC PGM=PGM2 //STEPLIB DD DISP=SHR,DSN=&LOADLIB1 // DD DISP=SHR,DSN=&LOADLIB2 // DD DISP=SHR,DSN=&LOADLIB3
И генерить нужные SET-ы для каждой процедуры. Тогда в STEPLIB-ах получается по три библиотеки, а если делать JOBLIB общий - то там будет четыре.