Na komputerze mainframe IBM z systemem operacyjnym z / OS uruchamiane jest narzędzie, które kopiuje zestaw danych (plik) do innego zestawu danych (plik). Dane wejściowe są źródłem przesłanego języka JCL (Job Control Language), który spowodował jego uruchomienie. Wyjściem jest czytnik wewnętrzny (INTRDR). Musisz także upewnić się, że Twój system nie pozwala na uruchamianie wielu identycznych nazw zadań. Dobrze jest użyć klasy zadania, która ma tylko jednego inicjatora (miejsce, w którym zadanie może działać wsadowo).
Brak zaangażowanych identyfikatorów PID (w systemie z / OS), więc nie powiedzie się zestaw wyzwań.
Zatrzymujesz proces, opróżniając i / lub spłukując. Jeśli coś poszło nie tak, poprzez drenaż i / lub spłukiwanie, przeklinanie, kopanie, próbę ciepłego startu i wreszcie przez zimny start lub uderzenie w Big Red Button (i strzelanie do programisty).
Mogłem przesadzać po drodze, ale nie próbuj tego w pracy ...
Przykład użycia SORT. Szczegóły dotyczące karty JOB są bardzo zależne od strony. Zasady witryny mogą zabraniać lub uniemożliwiać korzystanie z INTRDR. Do korzystania z INTRDR może być wymagana konkretna klasa. Jeśli zasady witryny zabraniają korzystania z niego , nie używaj go, chyba że chcesz zabrać swoje rzeczy na spacer w tekturowym pudełku.
Chociaż INTRDR ma dobre zastosowania, nie należy go używać do tego celu . Nie będziesz nawet mieć szansy na zdobycie swojego pudełka.
//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)
Inne narzędzia są dostępne. Szybki program byłby również łatwy do zrobienia, wystarczy przeczytać plik, napisać plik.
Jeśli chcesz, aby przykład tego nie powiódł się, spróbuj: http://ibmmainframes.com/viewtopic.php?p=282414#282414
Tradycyjnym sposobem kopiowania zestawu danych jest użycie narzędzia IBM IEBGENER, jak ugoren wspomina w swoim komentarzu.
Jednak w dzisiejszych czasach wiele witryn będzie miało „alias” IEBGENER do ICEGENER. Jeśli to możliwe, ICEGENER użyje DFSORT IBM (lub jego konkurencyjnego SyncSort) do wykonania kopii, ponieważ produkty SORT są znacznie bardziej zoptymalizowane pod kątem IO niż IEBGENER.
Właśnie wycinam środkowego człowieka za pomocą SORT.
Jeśli pracujesz w serwisie IBM Mainframe, znasz format karty JOB, której powinieneś używać. Minimalna karta JOB jest, jak pokazałem, bez komentarza. Komentarz będzie ważny, ponieważ na przykład możesz podać informacje księgowe. Nazwa zadania prawdopodobnie będzie miała format specyficzny dla witryny.
Niektóre witryny blokują lub uniemożliwiają korzystanie z INTRDR. Być świadomym.
Niektóre witryny umożliwiają jednoczesne uruchamianie wielu zadań o tej samej nazwie. Być świadomym.
Chociaż chyba, że nie jesteś programistą systemu, nie możesz skonfigurować takiej klasy, powinieneś poszukać klasy, która zezwala tylko na jednego inicjatora. Dzięki temu proces jest dość bezpieczny - ale bądź absolutnie pewien, że klasa działa zgodnie z opisem. Test. Nie z tą pracą.
Jeśli jesteś programistą systemu, wiesz, że nie możesz nic robić poza twoim zakresem kompetencji. powiedział nuff.
Przy jednym zadaniu o tej samej nazwie dozwolonym w tym samym czasie i pojedynczym inicjatorze będzie to ciągły strumień rozpoczęcia / zakończenia zadania następny początek / koniec zadania - dopóki nie wypełni się szpuli (kolejna zła rzecz do zrobienia) danymi wyjściowymi z tysiące zadań (lub zabrakło numerów zadań). Obserwuj konsolę JES pod kątem komunikatów ostrzegawczych.
Zasadniczo nie rób tego. Jeśli to zrobisz, nie rób tego na maszynie produkcyjnej.
Przy odrobinie odświeżenia rozważę kolejną odpowiedź na pytanie, jak to zrobić w innym systemie operacyjnym IBM Mainframe, z / VSE ... z / VSE używa JCL. z / OS używa JCL. Oni są różni :-)
exec
działa w systemie Linux?