Module lookup
|
|
XOpen | Дата: Пн, 29.08.2011, 20:07 | Сообщение # 1 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| Кто с ходу может дать ответ?
Вызываю JCL. В LNKLST лежат модули A1,B1,C1,D1. В STEPLIB лежат A2,C2. В JOBLIB A3,B3. (одинаковая буква означает тот же модуль, но цифра что он другой версии) Я вызываю из шага A,B,C,D. Какие версии вызовутся? (ответ в виде Ax,Bx,Cx,Dx)
|
|
| |
Bibizyan | Дата: Пн, 29.08.2011, 21:40 | Сообщение # 2 |
Подполковник
Группа: Проверенные
Сообщений: 131
Статус: Offline
| Насколько я помню, порядок должен быть А2, В3, С2 и D1. Приоритет у STEPLIB, затем JOBLIB, и только потом - LNKLST.
|
|
| |
art | Дата: Вт, 30.08.2011, 00:02 | Сообщение # 3 |
Лейтенант
Группа: Доверенные
Сообщений: 60
Статус: Offline
| Quote (Bibizyan) Приоритет у STEPLIB, затем JOBLIB
Ага, именно так.
|
|
| |
XOpen | Дата: Вт, 30.08.2011, 02:50 | Сообщение # 4 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| Quote (art) Ага, именно так. Просил же, не подсматривать. Я надеюсь это был саркастический ответ. Ибо согласно тому, что по ссылке, ответ в посте номер 2 - не верный. (с чем я сегодня себя тоже поздравил)
|
|
| |
art | Дата: Вт, 30.08.2011, 08:52 | Сообщение # 5 |
Лейтенант
Группа: Доверенные
Сообщений: 60
Статус: Offline
| Quote (XOpen) Ибо согласно тому, что по ссылке, ответ в посте номер 2 - не верный. Как это не верный?
"the system first searches the step library", это ведь про STEPLIB, так?
Сообщение отредактировал art - Вт, 30.08.2011, 08:57 |
|
| |
stas9132 | Дата: Вт, 30.08.2011, 12:06 | Сообщение # 6 |
Сержант
Группа: Проверенные
Сообщений: 24
Статус: Offline
| Остаётся добавить, что LPA имеет более высокий приоритет чем LNKLST.
Если модуль не найден в STEPLIB и JOBLIB он ищется в LPA, а потом уже в LNKLST.
|
|
| |
XOpen | Дата: Вт, 30.08.2011, 12:25 | Сообщение # 7 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| Quote (art) Как это не верный?
"the system first searches the step library", это ведь про STEPLIB, так? А прочитать абзац целиком? Последнее предложение не смущает? Оно о чем говорит?
|
|
| |
Bibizyan | Дата: Вт, 30.08.2011, 13:14 | Сообщение # 8 |
Подполковник
Группа: Проверенные
Сообщений: 131
Статус: Offline
| Quote (XOpen) Последнее предложение не смущает? Оно о чем говорит? Получается, что если есть STEPLIB, то в этом STEPе JOBLIB игнорируется, и будет искать в LNKLST. А если есть несколько STEPов, и в остальных нету STEPLIBа - то в них будет приоритет у JOBLIB.
|
|
| |
art | Дата: Вт, 30.08.2011, 13:18 | Сообщение # 9 |
Лейтенант
Группа: Доверенные
Сообщений: 60
Статус: Offline
| Quote (XOpen) А прочитать абзац целиком? Последнее предложение не смущает? Оно о чем говорит? Нашел в другой формулировке: "If both the JOBLIB and STEPLIB statements are coded, then the STEPLIB specification will override JOBLIB specification."
Таки вы правы, посыпаю голову пеплом. Хотя поиск STEPLIB->JOBLIB->SYSTEM LIB был бы логичнее, имхо.
Я сначала решил, что говоря о system libs они относят к joblib, но был не прав
|
|
| |
XOpen | Дата: Вт, 30.08.2011, 14:00 | Сообщение # 10 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| Quote (art) will override JOBLIB specification Quote (Bibizyan) то в них будет приоритет у JOBLIB. Вот именно из за таких фраз мы и живем в неведении. Слова "override" и "приоритет" чаще понимаются как очередь, что будет если модуль и там и там. А на деле только одно из двух. Либо одно, либо никто.
|
|
| |
Bibizyan | Дата: Вт, 30.08.2011, 15:36 | Сообщение # 11 |
Подполковник
Группа: Проверенные
Сообщений: 131
Статус: Offline
| Э... Тут я уже имел в виду приоритет JOBLIB перед LNKLST при отсутствии STEPLIB! А они таки - очередь.
|
|
| |
XOpen | Дата: Вт, 30.08.2011, 16:49 | Сообщение # 12 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| Quote (Bibizyan) Э... Тут я уже имел в виду приоритет JOBLIB перед LNKLST при отсутствии STEPLIB! А они таки - очередь. Я знаю. Но так как это явно не ДОписано, то и возникают ложные суждения. Мне всю жизнь говорили, что STEPLIB важнее JOBLIB, но никто неДОговорил, что он отменяет JOBLIB.
А теперь у меня ситуация что мы генерируем JOBLIB-ы для PROCLIB-ов как разные версии продуктов. А в тех шагах которые ссылаются на доп библы через STEPLIB происходят чудесные чудеса. И я не вижу красивого решения. Только решить, что STEPLIB - зло! А любые библиотеки надо дописывать в JOBLIB, даже если они реально используются в одной процедуре из сотни получивших этот JOBLIB.
ps: ну не LNKLST мне же переключать для разных версий...
|
|
| |
Bibizyan | Дата: Вт, 30.08.2011, 17:14 | Сообщение # 13 |
Подполковник
Группа: Проверенные
Сообщений: 131
Статус: Offline
| А прописывать в STEPLIB нужные библиотеки не получается? Через переменные, для которых генерируются SETы для каждой PROCLIB.
|
|
| |
XOpen | Дата: Вт, 30.08.2011, 18:22 | Сообщение # 14 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| Quote (Bibizyan) А прописывать в STEPLIB нужные библиотеки не получается? Через переменные, для которых генерируются SETы для каждой PROCLIB. Чем иметь большой STEPLIB для каждого шага лучше одного большого JOBLIB? (хотя наверно внутри это вообще одно и тоже)
|
|
| |
Bibizyan | Дата: Вт, 30.08.2011, 20:51 | Сообщение # 15 |
Подполковник
Группа: Проверенные
Сообщений: 131
Статус: Offline
| А почему должен получиться большой 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 общий - то там будет четыре.
|
|
| |