Я запускаю пакетную Java на мейнфрейме IBM под JZOS. Задание создает от 0 до 6 выходных файлов ".txt" в зависимости от того, что оно находит в базе данных. Затем мне нужно преобразовать эти файлы из Unix в MVS (ebcdic), и я использую команду OCOPY, работающую под управлением IKJEFT01. Однако, когда определенный вывод не был создан, я получаю сообщение об ошибке JCL, и задание завершается. Я хотел бы проверить наличие или отсутствие имени каждого файла и установить код условия для управления выполнением шагов IKJEFT01, но не знаю, что использовать для доступа к путям к файлам Unix.
У меня есть решил эту проблему, написав программу COBOL для проверки преобразованных файлов MVS и установки кодов возврата для управления выполнением последующих шагов JCL. Завершенная работа сейчас проходит приемочное тестирование пользователями. Возможно, это звучит как кладж, но это работает, и я рад поделиться этим решением.
Как проверить наличие файлов системных служб Unix
comment
Я просто наткнулся на это. Я сделал это в JCL через PGM=BPXBATCH в потоках заданий компиляции/сборки, где исходные файлы были извлечены из исходного репозитория, и в зависимости от версии могут существовать или не существовать - определенно не там, где вы хотите ошибку JCL. Позвольте мне откопать мой JCL в ближайшие день или два, и я опубликую его здесь.
- person zarchasmpgmr   schedule 22.01.2012
Ответы (1)
Самый простой способ сделать это в JCL — использовать BPXBATCH следующим образом:
//EXIST EXEC PGM=BPXBATCH,
// PARM='pgm /bin/cat /full/path/to/USS/file.txt'
//*
// IF EXIST.RC = 0
//* do whatever you need to
// ENDIF
Если файл существует, шаг заканчивается CC 0 и IF
завершается успешно. Если файл не существует, вы получите ненулевую CC (256, я полагаю), и IF
завершится ошибкой.
Поскольку оператора //STDOUT DD
нет, вывод в JES не записывается.
Единственным недостатком является то, что это еще один шаг задания, и если у вас много процессов (например, задание компиляции/сборки), вы можете столкнуться с ограничением в 255 шагов.
person
Community
schedule
22.01.2012
Спасибо. Программа COBOL также добавляет шаг, но она может писать в JES, и я могу выбрать коды возврата, которые будут использоваться для обработки последующих шагов. Кроме того, я могу проверить несколько файлов за один шаг.
- person Mike GH; 22.02.2012