На мейнфрейме IBM, работающем с z / OS, вы запускаете утилиту, которая копирует набор данных (файл) в другой набор данных (файл). Входные данные - это источник JCL (языка управления заданиями), который вы отправили для запуска. Выход - внутренний ридер (INTRDR). Вам также необходимо убедиться, что ваша система не позволяет запускать несколько идентичных имен заданий. Хорошо использовать класс заданий, у которого есть только один инициатор (место, где JOB может работать в пакетном режиме).
Там нет задействованных PID (в z / OS), поэтому не удается установить вызов.
Вы останавливаете процесс, сливая и / или промывая. Если что-то пошло не так, слив и / или промывка, ругань, удар ногой, попытка горячего старта и, наконец, холодный старт или нажатие на большую красную кнопку (и стрельба в программиста).
Я мог бы преувеличить по пути, но не пытайтесь это на работе ...
Пример использования SORT. Детали карты JOB зависят от сайта. Политика сайта может запрещать или запрещать использование INTRDR. Для использования INTRDR может потребоваться определенный класс. Если политика вашего сайта запрещает его использование , не используйте его, если вы не хотите взять свои вещи на прогулку в картонной коробке.
Хотя для INTRDR есть хорошие применения, не используйте его для этой цели . У тебя даже не будет возможности получить свою коробку.
//jobname JOB rest is to your site standards
//*
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=(,INTRDR) minimum required, site may require more
//SYSIN DD *
OPTION COPY
//SORTIN DD DISP=SHR,DSN=YOUR.LIBRARY.WITHJOB(JOBMEMBR)
Другие утилиты доступны. Быструю программу было бы легко сделать, просто прочитайте файл, напишите файл.
Если вы хотите, чтобы пример этого был неправильным, попробуйте: http://ibmmainframes.com/viewtopic.php?p=282414#282414
Традиционный способ скопировать набор данных - это использовать служебную программу IBM IEBGENER, на которую ссылается Угорен в своем комментарии.
Однако в наши дни на многих сайтах IEBGENER будет добавлен псевдоним ICEGENER. ICEGENER, если сможет, будет использовать для копирования копию IBM DFSORT (или его конкурирующего SyncSort), потому что продукты SORT гораздо более оптимизированы для ввода-вывода, чем IEBGENER.
Я просто отключаю посредника, используя SORT.
Если вы работаете на сайте IBM Mainframe, вы знаете формат карты JOB, которую вам следует использовать. Минимальная JOB-карта, как я показал, без комментариев. Комментарий будет важен, потому что вы, возможно, должны предоставлять учетную информацию, например. Имя работы, скорее всего, будет иметь формат, специфичный для сайта.
Некоторые сайты запрещают или запрещают использование INTRDR. Быть в курсе
Некоторые сайты допускают одновременное выполнение нескольких заданий с одинаковым именем. Быть в курсе
Хотя, если вы не являетесь системным программистом, вы не можете создать такой класс, вам следует искать класс, который допускает только один инициатор. При этом процесс довольно безопасен - но будьте абсолютно уверены в том, что класс работает так, как описано. Тест. Не с этой работой.
Если вы являетесь системным программистом, вы знаете, что ничего не делаете за пределами своей компетенции. 'достаточно.
Если одно задание разрешено в одно и то же время и один инициатор, это будет постоянным потоком запуска / завершения следующего запуска / завершения следующего задания - до тех пор, пока вы не заполните катушку (еще одна плохая вещь) выводом из тысячи рабочих мест (или не хватает рабочих мест). Посмотрите консоль JES для предупреждений.
По сути, не делай этого. Если вы делаете это, не делайте этого на производственной машине.
Немного подведя итоги, я рассмотрю другой ответ о том, как это сделать в другой операционной системе IBM Mainframe: z / VSE ... z / VSE использует JCL. z / OS использует JCL. Они разные :-)
exec
делает в Linux?