Programy wsparcia dla OS/360 i następców - Support programs for OS/360 and successors

W tym artykule omówiono programy pomocy technicznej zawarte lub dostępne dla systemu OS/360 i następców . IBM klasyfikuje niektóre z tych programów jako narzędzia, a inne jako pomoce serwisowe; granice nie zawsze są spójne lub oczywiste. Wiele z tych programów, ale nie wszystkie, odpowiada typom oprogramowania narzędziowego .

Poniższe listy opisują programy związane z systemem OS/360 i jego następcami . Nie są dołączone żadne narzędzia DOS , TPF ani VM .

Historia/Wspólna JCL

Wiele z tych programów zostało zaprojektowanych przez użytkowników IBM za pośrednictwem grupy SHARE , a następnie zmodyfikowanych lub rozszerzonych przez IBM z wersji oryginalnie napisanych przez użytkownika.

Programy te są zwykle wywoływane za pośrednictwem języka sterowania zadaniami (JCL). Zwykle używają wspólnych identyfikatorów JCL DD (w systemie operacyjnym, teraz w systemach operacyjnych z/OS ) dla swoich zbiorów danych:

NAZWA DD Zwykła funkcja
SYSIN plik wejściowy dla 'polecenia' narzędzia. Często ustawiany na DUMMY, jeśli pożądana jest domyślna akcja
SYSUT1 plik wejściowy
SYSUT2 plik wyjściowy
SYSUT3 plik roboczy (wyciek) dla danych wejściowych (SYSUT1) (często nieużywany)
SYSUT4 plik roboczy (wyciek) do wyjścia (SYSUT2) (często nieużywany)
SYSPRINT plik wyjściowy do wydruku z narzędzia
SYSOUT plik wyjściowy dla wiadomości z narzędzia
SYSUDUMP plik wyjściowy do "zrzutu" systemowego, jeśli program się nie powiedzie

Narzędzia zbiorów danych

IDCAMS

IDCAMS ("Usługi Metod Dostępu") generuje i modyfikuje zestawy danych Metody Dostępu do Wirtualnej pamięci masowej (VSAM) i inne niż VSAM. IDCAMS został wprowadzony wraz z VSAM w OS/VS ; odniesienie „Metoda dostępu” wywodzi się z początkowego sposobu myślenia OS/VS „VSAM zastępuje wszystkie inne metody dostępu”. IDCAMS ma prawdopodobnie największą funkcjonalność ze wszystkich programów narzędziowych, wykonując wiele funkcji, zarówno dla plików VSAM, jak i innych niż VSAM.

Poniższy przykład ilustruje użycie IDCAMS do kopiowania zestawu danych na dysk. Zestaw danych zawiera 80-bajtowe rekordy, a system wybierze rozmiar bloku dla wyjścia:

//XXXXXXXW JOB  XXXXXXX,AAAA,CLASS=G,MSGCLASS=1,NOTIFY=&SYSUID
//STEP001  EXEC PGM=IDCAMS
//SYSIN    DD *
   REPRO INFILE(FILE01) OUTFILE(FILE02) 
/*
//FILE01   DD DSN=PROD.FILE1.INPUT,disp=shr   .....
//FILE02   DD DSN=PROD.FILE2.OUTPUT,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=DASD,
//            SPACE=(TRK,(100,10),RLSE),   
//            DCB=(RECFM=FB,BLKSIZE=0,LRECL=80)
//SYSPRINT DD SYSOUT=* 
//SYSOUT   DD SYSOUT=* 
//SYSUDUMP DD SYSOUT=*

//*

W powyższym przykładzie karty kontrolne SYSIN pochodzą z pliku strumieniowego, ale zamiast tego możesz wskazać dowolny plik sekwencyjny lub element PDS zawierający karty kontrolne lub tymczasowy zestaw danych, jeśli chcesz. Przykładem użycia plików SYSIN może być mniej więcej tak:

//SYSIN    DD DSN=PROD.MYFILE.REPRO,DISP=SHR

albo to:

//SYSIN    DD DSN=PROD.MYLIB.CNTLLIB(REPRO),
//            DISP=SHR

IEBCOMPR

IEBCOMPR porównuje rekordy w sekwencyjnych lub partycjonowanych zestawach danych .

Narzędzie IEBCOMPR służy do porównywania dwóch sekwencyjnych lub partycjonowanych zestawów danych . To porównanie zestawu danych jest wykonywane na poziomie rekordów logicznych. Dlatego IEBCOMPR jest powszechnie używany do sprawdzenia, czy kopia zapasowa zestawu danych jest poprawna (dokładne dopasowanie do oryginału).

Podczas przetwarzania IEBCOMPR porównuje każdy rekord z każdego zestawu danych, jeden po drugim. Jeśli rekordy są nierówne, IEBCOMPR wyświetla w SYSOUT następujące informacje:

  • Numery rekordów i bloków, o których mowa.
  • Nazwy wyciągów DD, w których wystąpiła niespójność.
  • Nierówne rekordy.

Porównując sekwencyjne zestawy danych, IEBCOMPR uważa zestawy danych za równe, jeśli spełnione są następujące warunki:

  • Zestawy danych zawierają taką samą liczbę rekordów.
  • Odpowiednie rekordy i klucze są identyczne.

W przypadku partycjonowanych zestawów danych program IEBCOMPR uznaje zestawy danych za równe, jeśli spełnione są następujące warunki:

  • Wpisy katalogu dla dwóch podzielonych na partycje zestawów danych są takie same — to znaczy, że nazwy są takie same, a liczba wpisów jest równa.
  • Odpowiadający członkowie zawierają taką samą liczbę rekordów.
  • Odpowiednie rekordy i klucze są identyczne.

Jeśli podczas przetwarzania napotkanych zostanie dziesięć nierównych porównań, IECOMPR kończy się odpowiednim komunikatem.

//XXXXXXXW JOB   XXXXXXX,AAAA.A.A,CLASS=G,MSGCLASS=1,NOTIFY=XXXXX
//STEP01   EXEC PGM=IEBCOMPR,ACCT=PJ00000000
//     INCLUDE  MEMBER=@BATCHS
//*SYSIN    DD DUMMY
//SYSIN DD *
   COMPARE TYPORG=PO
/*
//SYSUT1   DD DSN=XXXXXXX.OLDFILE,UNIT=DASD,DISP=SHR
//SYSUT2   DD DSN=XXXXXXX.NEWFILE,UNIT=DASD,DISP=SHR
//SYSUT#   DD

Uwaga: IEBCOMPR nie jest zbyt elastycznym ani przyjaznym dla użytkownika programem do porównywania. Nie może ograniczyć porównania tylko do określonych kolumn, nie może ignorować różnic w odstępach, nie mówi, gdzie w rekordzie występuje różnica, i zatrzymuje się po 10 różnicach. Z drugiej strony jest szybki i jest obecny na wszystkich komputerach mainframe IBM. Jest to więc bardzo przydatne, gdy oczekuje się dokładnego dopasowania, na przykład porównując moduły ładujące, które nie zostały ponownie zablokowane lub sprawdzając, czy kopia działała prawidłowo. Do porównywania programów lub raportów często używany jest program do porównywania ISPF SuperC (ISRSUPC).

IEBCOPY

IEBCOPY kopiuje, kompresuje i łączy podzielone na partycje zestawy danych . Może również wybierać lub wykluczać określonych członków podczas operacji kopiowania oraz zmieniać nazwy lub zastępować członków.

Niektóre z zadań, które może wykonać IEBCOPY, obejmują:

  • Tworzenie wyładowania podzielonego zestawu danych (PDS) do zestawu danych PS w celu utworzenia kopii zapasowej lub transmisji.
  • Kopiowanie PDS w celu odzyskania niewykorzystanego miejsca od usuniętych członków; zwany także kompresowaniem PDS.
  • Kopiowanie wybranych członków do innego PDS.
  • Zmiana nazw wybranych członków PDS.
  • Scalanie wielu podzielonych na partycje zestawów danych w jeden system PDS.
  • Zmienianie, kopiowanie i ponowne blokowanie modułów ładowania.
  • Członkowie, którzy są już obecni w innym PDS, nie zostaną zastąpieni, chyba że określono opcję R.

W przypadku narzędzia IEBCOPY wymagane instrukcje sterowania zadaniami dla kopii są następujące:

//stepname EXEC PGM=IEBCOPY 
//SYSPRINT DD SYSOUT=class
//MYDD1    DD DSN=xxxx.ppp.psps,DISP=SHR
//MYDD2    DD DSN=xxxx.ppp.pssp,DISP=SHR
//SYSIN    DD *
    COPY INDD=MYDD1,OUTDD=MYDD2                    
       SELECT MEMBER=(MEM1,MEM2,MEM3)/ EXCLUDE MEMBER=(SF,DF,SA)

Instrukcje DD MYDD1 i MYDD2 są nazwami wybranymi przez użytkownika odpowiednio dla partycjonowanych zestawów danych wejściowych i wyjściowych; Wartości domyślne to SYSUT1 i SYSUT2. Możesz użyć dowolnego poprawnego DDNAME dla tych dwóch instrukcji DD. Te DDNAME są określone w instrukcjach sterujących narzędzia, aby przekazać IEBCOPY nazwę zestawów danych wejściowych i wyjściowych. Aby skompresować plik PDS, potrzebujesz tylko jednej instrukcji DD.

IEBDG

IEBDG („Generator danych”) tworzy zestawy danych testowych składające się z danych wzorcowych. Instrukcje sterujące definiują pola rekordów, które mają zostać utworzone, w tym pozycję, długość, format i inicjalizację. IEBDG może używać istniejącego zestawu danych jako pól wejściowych i pól zmiany, jak określono w instrukcjach sterujących, na przykład zastępując pole nazwy losowym tekstem alfabetycznym. Zawartość każdego pola można zmieniać dla każdego rekordu, na przykład obracając znaki w polu alfanumerycznym w lewo lub w prawo dla każdego kolejnego rekordu.

Przykład:

//XXXXXXXW JOB  XXXXXXX,AAAA,CLASS=G,MSGCLASS=1,NOTIFY=&SYSUID
//**********************************************************************
//* CREATION OF A DATASET To BE USED LATER ON
//**********************************************************************    
//CRSTEP EXEC PGM=IEFBR14                                   
//DDCREA   DD DSN=&SYSUID..MVSUT.SEQOUT,DISP=(NEW,CATLG)
//**********************************************************************
//* CREATION OF THE TESTDATA
//**********************************************************************              
//STEP1  EXEC PGM=IEBDG                                                 
//SYSPRINT DD SYSOUT=*                                                  
//SEQOUT   DD DSN=&SYSUID..MVSUT.SEQOUT,DISP=OLD                      
//SYSIN    DD DATA                                                      
      DSD OUTPUT=(SEQOUT)                                               
      FD  NAME=FIELD1,LENGTH=30,STARTLOC=1,FORMAT=AL,ACTION=TL          
      FD  NAME=FIELD2,LENGTH=30,STARTLOC=31,FORMAT=AL,ACTION=TR         
      FD  NAME=FIELD3,LENGTH=10,STARTLOC=71,PICTURE=10,                X
                  P'1234567890',INDEX=1                                 
      CREATE QUANTITY=500,NAME=(FIELD1,FIELD2,FIELD3),FILL=X'FF'        
      END                                                               
/* 
//**********************************************************************
//* PRINTING THE TEST DATA TO SYSOUT
//**********************************************************************    
//STEP2  EXEC PGM=IEBGENER                                       
//SYSPRINT DD SYSOUT=*                                           
//SYSUT1   DD DSN=*.STEP1.SEQOUT,DISP=SHR                        
//SYSIN    DD DUMMY                                              
//SYSUT2   DD SYSOUT=* 
//**********************************************************************
//* DELETE THE CREATED DATASET, EVEN IF PREVIOUS STEPS ABENDED
//**********************************************************************                                           
//DLSTEP EXEC PGM=IEFBR14,COND=EVEN                              
//DDDEL    DD DSN=&SYSUID..MVSUT.SEQOUT,DISP=(OLD,DELETE,DELETE)
//

IEBEDIT

IEBEDIT selektywnie kopiuje fragmenty JCL.

Przykład programu IEBEDIT:

//IEBEDITJ JOB ACCT,'',CLASS=P,MSGCLASS=T,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//STEP0001 EXEC PGM=IEBEDIT
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR
//SYSUT2   DD SYSOUT=(*,INTRDR)
//SYSIN    DD *
    EDIT TYPE=INCLUDE,STEPNAME=(STEP10,STEP5,STEP15)
/*
//

W tym przykładzie zestaw danych xxxxx.yyyyy.zzzzz powinien zawierać zadanie (zadania) (które powinny zawierać kroki o nazwach KROK5, KROK10 i KROK15). Ta procedura IEBEDIT kopiuje wybrane kroki zadania do pliku wyjściowego SYSUT2 (w tym przykładzie czytnika wewnętrznego).

Składnia instrukcji EDIT to:

[label] EDIT [START=jobname] 
[,TYPE={POSITION|INCLUDE|EXCLUDE}] 
[,STEPNAME=(namelist)] 
[,NOPRINT]

START=jobnameokreśla nazwę zadania wejściowego, którego dotyczy instrukcja EDIT. Każda instrukcja EDIT musi dotyczyć oddzielnego zadania. Jeśli START określono bez TYPE i STEPNAME, instrukcja JOB i wszystkie kroki zadania dla określonego zadania są uwzględniane w danych wyjściowych.

Domyślnie: jeśli pominięto START i podano tylko jedną instrukcję EDIT, przetwarzane jest pierwsze zadanie napotkane w wejściowym zestawie danych. Jeśli START zostanie pominięty w instrukcji EDIT innej niż pierwsza instrukcja, przetwarzanie jest kontynuowane z następną instrukcją JOB znalezioną w wejściowym zestawie danych.

TYPE={POSITION|INCLUDE|EXCLUDE}określa zawartość wyjściowego zestawu danych. Te wartości można zakodować:

POSITIONokreśla, że ​​dane wyjściowe mają składać się z instrukcji JOB, kroku zadania określonego w parametrze STEPNAME oraz wszystkich kroków następujących po tym kroku zadania. Wszystkie kroki zadania poprzedzające określony krok są pomijane w operacji. POZYCJA jest domyślna.

INCLUDE określa, że ​​zestaw danych wyjściowych ma zawierać instrukcję JOB i wszystkie kroki zadania określone w parametrze STEPNAME.

EXCLUDE określa, że ​​zestaw danych wyjściowych ma zawierać instrukcję JOB i wszystkie kroki zadania należące do zadania z wyjątkiem kroków określonych w parametrze STEPNAME.

STEPNAME=(namelist) określa nazwy kroków zadania, które chcesz przetworzyć.

namelistmoże być nazwą pojedynczego kroku zadania, listą nazw kroków oddzielonych przecinkami lub sekwencyjnym zakresem kroków oddzielonych myślnikiem (na przykład KROK-KROK). Dowolna ich kombinacja może być użyta w jednej liście nazw. Jeśli podano więcej niż jedną nazwę kroku, cała lista nazw musi być ujęta w nawiasy.

Po zakodowaniu z TYPE=POSITION, STEPNAME określa pierwszy krok zadania, który ma być umieszczony w wyjściowym zestawie danych. Kroki zadania poprzedzające ten krok nie są kopiowane do zestawu danych wyjściowych.

W przypadku kodowania z opcją TYPE=INCLUDE lub TYPE=EXCLUDE, STEPNAME określa nazwy kroków zadania, które mają zostać uwzględnione lub wykluczone z operacji. Na przykład, STEPNAME=(STEPA,STEPF-STEPL,STEPZ) wskazuje, że kroki zadania STEPA, STEPF do STEPL i STEPZ mają być uwzględnione lub wykluczone z operacji.

Jeśli STEPNAME zostanie pominięty, kopiowane jest całe zadanie wejściowe, którego nazwa jest określona w instrukcji EDIT. Jeśli nie określono nazwy zadania, przetwarzane jest pierwsze napotkane zadanie.

NOPRINT określa, że ​​zestaw danych komunikatu nie ma zawierać listy wyjściowego zestawu danych.

Domyślnie: wynikowe dane wyjściowe są wymienione w zestawie danych komunikatu.

Więcej informacji znajdziesz tutaj: [1]

IEBGENER

IEBGENER kopiuje rekordy z sekwencyjnego zestawu danych lub tworzy podzielony na partycje zestaw danych.

Niektóre z zadań, które może wykonać IEBGENER, obejmują:

  • Tworzenie kopii zapasowej sekwencyjnego zestawu danych lub członka PDS .
  • Zmiana rozmiaru fizycznego bloku lub logicznej długości rekordu sekwencyjnego zestawu danych.
  • Tworzenie edytowanego zbioru danych.
  • Drukowanie sekwencyjnego zestawu danych lub elementu PDS.
  • Tworzenie podzielonego zestawu danych wyjściowych z sekwencyjnego zestawu danych wejściowych.

Przykład programu IEBGENER do kopiowania jednego zbioru danych do drugiego:

//IEBGENER JOB  ACCT,'DATA COPY',MSGCLASS=J,CLASS=A
//STEP010  EXEC PGM=IEBGENER                       
//SYSUT1   DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR 
//SYSUT2   DD DSN=aaaaa.bbbbb.ccccc,DISP=(,CATLG),
//            UNIT=SYSDA,SPACE=(TRK,(5,5),RLSE),
//            DCB=(RECFM=FB,LRECL=1440)
//SYSPRINT DD SYSOUT=*                             
//SYSIN    DD DUMMY

W przypadku prostych zadań kopiowania program sortujący często wykonuje je szybciej niż IEBGENER. Dlatego wiele sklepów z komputerami mainframe korzysta z opcji, która automatycznie kieruje takie zadania do programu sort ICEGENER zamiast IEBGENER.

W niektórych systemach możliwe jest wysyłanie wiadomości e-mail od trybie wsadowym przez skierowanie wyjścia do „ SMTPzewnętrznej nagrywarki . W takich systemach technika jest następująca:

//IEBGENER JOB  ACCT,'DATA COPY',MSGCLASS=J,CLASS=A
//NORMRC   EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD *,LRECL=80
HELO <SYSTEMID>
MAIL FROM:<USERID@SYSTEMID>
RCPT TO:<USERID@SYSTEMID>
DATA
From: <USERID@SYSTEMID>
To: <USERID@SYSTEMID>
Subject: Test Mail

TEST MAIL FROM MAINFRAME
.
QUIT
/*
//SYSUT2   DD SYSOUT=(B,SMTP),LRECL=80
//SYSIN    DD DUMMY

Możliwe jest również załączanie plików podczas wysyłania wiadomości e-mail z Mainframe.

IEBIMAGE

IEBIMAGE manipuluje kilkoma typami definicji ( obrazów AKA ) dla podsystemu drukowania laserowego IBM 3800 i drukarki IBM 4248. Typowe zastosowania to bufory kontroli formularzy ( FCB ), tabele rozmieszczenia znaków, definicje znaków i obrazy formularzy, które mają być wydrukowane na wydruku wraz z tekstem, logo firmy drukowane na stronie lub po prostu wydruk szarego paska strony (naprzemiennie szare i białe poziome tła, aby dopasować poprzedni papier greenbar ). Dzięki temu narzędziu wiele różnych formularzy lub logo może być przechowywanych jako obrazy i drukowane w razie potrzeby, wszystkie przy użyciu tego samego standardowego czystego papieru, eliminując w ten sposób potrzebę magazynowania wielu wstępnie zadrukowanych formularzy oraz konieczność zatrzymania drukarki i zmiany papieru przez operatorów .

IEBIZAM

IEBISAM rozładowuje, ładuje, kopiuje i drukuje zestawy danych ISAM .

Wyciąg z podręcznika IBM SC26-7414-08 z/OS DFSMSdfp Narzędzia: Program IEBISAM nie jest już rozpowszechniany. Począwszy od systemu z/OS V1R7, zestawów danych ISAM nie można już przetwarzać (tworzyć, otwierać, kopiować ani zrzucać). Zestawy danych ISAM, które są nadal w użyciu, muszą zostać przekonwertowane na zestawy danych z sekwencjonowaniem kluczy VSAM.

Przed wersją z/OS V1R7 można było użyć usług metod dostępu do przydzielenia zestawu danych sekwencji kluczy VSAM i skopiowania do niego zestawu danych ISAM.

IEBPTPCH

IEBPTPCH ("Print and PunCH") drukuje lub dziurkuje rekordy z sekwencyjnego lub partycjonowanego zestawu danych.

Niektóre z zadań, które może wykonać IEBPTPCH, obejmują:

  • Drukowanie lub dziurkowanie całego zestawu danych , sekwencyjnego lub podzielonego na partycje (PDS).
  • Drukowanie lub dziurkowanie wybranych członków PDS.
  • Drukowanie lub dziurkowanie wybranych rekordów z sekwencyjnego lub partycjonowanego zestawu danych.
  • Drukowanie lub dziurkowanie katalogu PDS.
  • Drukowanie lub dziurkowanie edytowanej wersji sekwencyjnego zestawu danych lub PDS.
  • Sprawdź, czy zbiór danych jest pusty
//IEBPTPCH JOB
//         EXEC PGM=IEBPTPCH
//SYSIN    DD *
 PRINT     MAXFLDS=2
 TITLE     ITEM=('Name',22),
           ITEM=('GPA',50)
 TITLE     ITEM=(' ',1)
 RECORD    FIELD=(25,1,,22),
           FIELD=(4,51,,50)
/*
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD *
Person 1                 307 C Meshel Hall        3.89
Second person            123 Williamson Hall      2.48
3rd person               321 Maag Library         1.52
/*
//SYSUT2   DD SYSOUT=*
//

Kontrola pustego zbioru danych: Jeśli zbiór danych do sprawdzenia jest pusty, to RC=4 w przeciwnym razie 0.

//IEBPTPCH JOB
//         EXEC PGM=IEBPTPCH
//SYSUT1   DD DSN=<filename>,DISP=SHR
//SYSUT2   DD DUMMY,
//         DCB=(BLKSIZE=<block size>,RECFM=FA)        
//SYSIN    DD *
 PRINT TYPORG=PS 
/*
//SYSPRINT DD SYSOUT=*
//

IEBTCRIN

Odczytuj zapisy z czytnika kaset z taśmą 2495.

IEBUPDAT

Zmienia rekordy w sekwencyjnym zestawie danych lub w elemencie partycjonowanego zestawu danych, zastępowane przez IEBUPDTE, ale niezgodne z nim.

IEBUPDTE

IEBUPDTE ("UPDaTE") zawiera zmiany w sekwencyjnych lub partycjonowanych zestawach danych. Narzędzie UNIX patchjest podobnym programem, ale używa różnych znaczników formatu wejściowego ( np. "./ INSERT ..." w MVS staje się "@@..." w Unix Patch).

Niektórzy programiści nazywają to "IEB up-ditty".

Narzędzie IEBUPDTE służy do obsługi bibliotek źródłowych. Niektóre z funkcji, które może wykonywać IEBUPDTE, obejmują:

  • Tworzenie i aktualizacja bibliotek
  • Modyfikowanie sekwencyjnych zbiorów danych lub członków PDS
  • Zmiana organizacji zestawu danych z sekwencyjnego na partycjonowany lub z partycjonowanego na sekwencyjny.

IEBUPDTE jest powszechnie używany do dystrybucji bibliotek źródłowych z taśmy na DASD .

IEBUPDTE używa tych samych instrukcji sterowania zadaniami, które są wymagane przez większość narzędzi typu IEB. Jedyne wyjątki to:

  • IEBUPDTE akceptuje parametr PARM zakodowany w instrukcji EXEC, NEW lub MOD. NEW oznacza, że ​​instrukcje sterujące narzędzia i dane wejściowe są zawarte w instrukcji SYSIN DD, więc nie jest potrzebna instrukcja SYSUT1 DD. MOD wskazuje, że instrukcja SYSIN DD zawiera tylko instrukcje sterujące narzędziami, bez danych wejściowych. Dlatego do zdefiniowania zestawu danych wejściowych wymagana jest instrukcja SYSUT1 DD.
  • IEBUPDTE odczytuje zestaw danych wejściowych z instrukcji SYSUT1 DD lub z instrukcji SYSIN DD.

Kontrola zadań używana przez IEUPDTE jest następująca:

//stepname EXEC PGM=IEUPDTE,PARM=NEW 
//SYSPRINT DD SYSOUT=class
//SYSUT1   DD ...
//SYSUT2   DD ...
//SYSIN    DD ...

Narzędzia harmonogramu

IEFBR14

IEFBR14 to fikcyjny program, zwykle umieszczany w JCL, gdy jedyną pożądaną akcją jest alokacja lub usunięcie zbiorów danych.

Przykład kroku IEFBR14 :

//IEFBR14  JOB  ACCT,'DELETE DATASET'
//STEP01   EXEC PGM=IEFBR14
//DELDD    DD DSN=xxxxx.yyyyy.zzzzz,
//            DISP=(MOD,DELETE,DELETE),UNIT=DASD

Sekwencja wywołań dla OS/360 zawierała adres zwrotny w rejestrze 14. W ten sposób odgałęzienie do rejestru 14 natychmiast wychodziłoby z programu. Jednak przed i po wykonaniu tego programu system operacyjny przydzieli i zwolni zestawy danych zgodnie z instrukcjami DD, więc jest powszechnie używany jako szybki sposób konfigurowania lub usuwania zestawów danych.

Początkowo składał się z pojedynczej instrukcji „Branch to Register” 14. Mnemonik używany w IBM Assembler to BR i stąd nazwa: IEF BR 14. IEF jest oczywiście „przedrostkiem” „zarządzania zadaniami” w OS/360 podsystem.

Ten program z pojedynczą instrukcją zawierał błąd — nie ustawiał kodu powrotu. W związku z tym należało dodać drugą instrukcję, aby wyczyścić kod powrotu, tak aby wychodził z poprawnym statusem.

Wystąpił dodatkowy błąd zgłoszony i naprawiony przez IBM w tym teraz dwuinstrukcyjnym programie. Ten błąd był spowodowany tym, że program IEFBR14 nie był edytowany jako możliwy do ponownego wprowadzenia (jednocześnie może być używany przez więcej niż jednego wywołującego).

Niektórzy hakerzy przejęli IEFBR14 i zmienili instrukcję BR 14 na BR 15, tworząc w ten sposób „najkrótszą pętlę na świecie”, ponieważ rejestr 15 zawiera adres samego modułu IEFBR14, a instrukcja BR 15 po prostu ponownie wywołałaby ten moduł , na zawsze.

Narzędzia systemowe

Te narzędzia są zwykle używane przez programistów systemowych do utrzymania działania systemu, a nie przez programistów do wykonywania pracy z aplikacjami w systemie.

ICKDSF

ICKDSF ("Device Support Facility") instaluje, inicjuje i utrzymuje DASD, zarówno w systemie operacyjnym, jak i autonomicznie .

IEHATLAS

Przypisz alternatywne ścieżki do uszkodzonych ścieżek.

IEHDASDR

IEHDASDR może wykonywać kilka operacji dla urządzeń pamięci masowej o bezpośrednim dostępie (DASD)

  • Zainicjuj wolumin DASD z opcjonalnym sprawdzaniem powierzchni
  • Przypisz alternatywne ścieżki do uszkodzonych ścieżek
  • Drukuj utwory na DASD
  • Utwórz kopię zapasową woluminu DASD na taśmie
  • Przywróć woluminy DASD z taśm kopii zapasowych.

IBM ostatecznie przestał dodawać obsługę nowych typów urządzeń do IEHDASDR i skierował klientów do bezpłatnego DSF w celu zainicjowania woluminów oraz do płatnego DASDR (5740-UT1) i usług Data Facility/Data Set Services (5740-UT3, DF/DSS) w celu zrzutu/ przywrócić.

IBM usunął IEHDASDR w MVS/XA.

IEHINITT

IEHINITT ("INITialize Tape") inicjuje taśmy, zapisując etykiety na taśmach. W jednym przebiegu narzędzia można oznaczyć wiele taśm. Mogą być napisane etykiety standardowe IBM lub ASCII .

Przykład programu IEHINITT:

//IEHINITT JOB  ACCT,'LABEL TAPES',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IEHINITT,REGION=8M                      
//SYSPRINT DD SYSOUT=A 
//LABEL    DD DCB=DEN=2,UNIT=(3490,1,DEFER) 
//SYSIN    DD * 
LABEL INITT SER=123450,NUMBTAPE=3 
/*

W tym przykładzie zostaną oznaczone 3 taśmy na jednostce taśm magnetycznych 3490. Każda taśma otrzyma standardową etykietę IBM. Wartość VOLSER zostanie zwiększona o jeden dla każdej oznaczonej taśmy. Każda taśma zostanie przewinięta i rozładowana po opatrzeniu etykietą.

IEHIOSUP

Zaktualizuj łącza TTR dla procedur wywołania nadzorcy typu IV (SVC) w SYS1.SVCLIB. Nie dotyczy OS/VS2 lub nowszych.

LISTA IEH

IEHLIST to narzędzie używane do wyświetlania wpisów w katalogu Partitioned Dataset (PDS) lub do wyświetlania zawartości Volume Table of Contents ( VTOC ).

Narzędzie IEHLIST służy do wylistowania wpisów zawartych w jednym z poniższych:

  • Katalog PDS
  • VTOC
  • Katalog (OS CVOL)

Przykład programu IEHLIST:

//IEHLIST  JOB  ACCT,'LIST PDS',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IEHLIST,REGION=8M                      
//SYSPRINT DD SYSOUT=A
//PDS1     DD DSN=xxxx.yyyy.zzzz,DISP=OLD
//SYSIN    DD *
  LISTPDS DSNAME=xxxx.yyyy.zzzz,FORMAT
/*

To zadanie utworzy sformatowaną listę katalogu PDS PDS o nazwie xxxx.yyyy.zzzz.

Przykład programu IEHLIST do wylistowania VTOC jest bardzo podobny:

//IEHLIST  JOB  ACCT,'LIST VTOC',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IEHLIST,REGION=8M                      
//SYSPRINT DD SYSOUT=A
//VOL1     DD VOL=SER=vvvvvv,DISP=OLD
//SYSIN    DD *
  LISTVTOC VOL=SER=vvvvvv,FORMAT
/*

IEHMOVE

IEHMOVE przenosi lub kopiuje zbiory danych. Jednak środowiska DFSMS ( System Managed Storage ) są obecnie powszechne i IBM nie zaleca używania w nich narzędzia IEHMOVE. Przeniesienie różni się od kopii tym, że po przeniesieniu oryginalny zestaw danych jest usuwany lub porysowany. Niektóre z zadań, które może wykonać IEHMOVE, obejmują:

  • Przenoszenie lub kopiowanie sekwencyjnych i partycjonowanych zestawów danych
  • Przenoszenie lub kopiowanie wielowoluminowych zestawów danych
  • Przenoszenie całego wolumenu zbiorów danych

Na powierzchni IEHMOVE może wydawać się zbędne w stosunku do narzędzi IEBGENER i IEBCOPY. Jednak IEHMOVE jest potężniejszy. Główną zaletą korzystania z IEHMOVE jest to, że nie trzeba określać miejsca ani informacji DCB dla nowych zestawów danych. Dzieje się tak, ponieważ IEHMOVE przydziela te informacje na podstawie istniejących zestawów danych.

Kolejną zaletą IEHMOVE jest możliwość kopiowania lub przenoszenia grup zestawów danych, a także całych wolumenów danych. Ze względu na łatwość przenoszenia grup zestawów danych lub woluminów narzędzie IEHMOVE jest ogólnie preferowane przez programistów systemowych .

Przykładowa praca IEHMOVE:

//stepname EXEC PGM=IEHMOVE,PARM='LINECNT=xx,POWER=n'
//SYSPRINT DD SYSOUT=class
//SYSUT1   DD UNIT=aaaa,VOL=SER=bbbbbb,DISP=OLD
//anyname1 DD UNIT=cccc,VOL=SER=dddddd,DISP=OLD
//anyname2 DD UNIT=eeee,VOL=SER=ffffff,DISP=OLD
//SYSIN    DD ...

Instrukcje DD dla IEHMOVE, inne niż SYSPRINT i SYSIN, odnoszą się do woluminów DASD lub taśm magnetycznych zamiast do poszczególnych zestawów danych . Jednak odwoływanie się do woluminów może stanowić problem, ponieważ określanie zapewnia DISP=OLDwyłączny dostęp do woluminu. Dlatego podczas działania zadania IEHMOVE cały wolumin (i wszystkie znajdujące się na nim zestawy danych) jest niedostępny dla innych użytkowników. Jest to dopuszczalne w przypadku woluminów prywatnych, takich jak taśmy lub woluminy DASD z możliwością montażu, ale niedopuszczalne woluminy publiczne.

Instrukcja SYSUT1 DD określa wolumin DASD, w którym przydzielone są trzy zestawy danych roboczych wymagane przez IEHMOVE. Musisz określić informacje o jednostce i objętości dla tej instrukcji DD.

IEHMOVE był jednym z pierwszych systemów opracowanych w PL/S .

W tym przykładzie trzy sekwencyjne zestawy danych (SEQSET1, SEQSET2 i SEQSET3) są przenoszone z jednego woluminu dyskowego do trzech oddzielnych woluminów dyskowych. Każdy z trzech woluminów odbiorczych jest montowany, gdy jest to wymagane przez IEHMOVE. Źródłowe zbiory danych nie są skatalogowane. Przestrzeń jest przydzielana przez IEHMOVE.

//MOVEDS   JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=333333,DISP=OLD
//DD1      DD  UNIT=(disk,,DEFER),DISP=OLD,
//             VOLUME=(PRIVATE,,SER=(222222))
//DD2      DD  UNIT=(disk,,DEFER),DISP=OLD,
//             VOLUME=(PRIVATE,,SER=(222333))
//DD3      DD  UNIT=(disk,,DEFER),DISP=OLD,
//             VOLUME=(PRIVATE,,SER=(222444))
//DD4      DD  VOLUME=(PRIVATE,RETAIN,SER=(444444)),
//             UNIT=disk,DISP=OLD
//SYSIN    DD  *
     MOVE   DSNAME=SEQSET1,TO=disk=222222,FROM=disk=444444
     MOVE   DSNAME=SEQSET2,TO=disk=222333,FROM=disk=444444
     MOVE   DSNAME=SEQSET3,TO=disk=222444,FROM=disk=444444
/*

IEHPROGM

IEHPROGM buduje i utrzymuje dane kontrolne systemu. Służy również do zmiany nazwy i zdrapywania (usuwania) zestawu danych.

Niektóre z zadań, które może wykonać IEHPROGM, obejmują:

  • Usunięcie (wydrapanie) zbioru danych lub członka PDS
  • Zmiana nazwy zbioru danych lub członka PDS
  • Katalogowanie lub odkatalogowywanie zbioru danych
  • Utrzymywanie haseł zestawu danych w systemie PASSWORD dataset

Do katalogowania:

//SYSIN DD *
   CATLG DSNNAME=data-set-name,
   VOL=device-name=volume-number
/*
//

IFHSTATR

Wybierz i sformatuj rekordy SMF dla błędów taśmy.

Niezależne przedsiębiorstwa

Programy te nie działają pod kontrolą systemu operacyjnego

IBCDASD

Formatuj woluminy o bezpośrednim dostępie i przypisuj alternatywne ścieżki.

IBCDMPR

Zrzucaj i przywracaj woluminy o bezpośrednim dostępie.

IBCRCVRP

Przypisz alternatywne ścieżki, odzyskaj i zastąp dane.

ICAPRTBL

Załaduj bufor kontroli formularzy (FCB) i bufor uniwersalnego zestawu znaków (UCS) na drukarce.

Pomoce serwisowe

Są to programy narzędziowe, które IBM dokumentuje w pomocy serwisowej lub podręcznikach diagnostycznych. Oryginalne pomoce serwisowe OS/360 miały nazwy zaczynające się od IFC i IM*, ale IBM zmienił konwencję nazewnictwa na HM* dla OS/VS1 i AM* dla OS/VS2 . IBM nie zmienił konwencji IFC.

IFCDIPOO

Inicjuje zestaw danych SYS1.LOGREC.

IFCEREPO

Podsumowuje i drukuje rekordy z zestawu danych rejestrowania błędów SYS1.LOGREC.

GTF (uogólnione narzędzie śledzenia)

Śledzi wybrane zdarzenia systemowe, takie jak przerwy SVC i I/O.

IMAPTFLE

Generuje JCL potrzebne do zastosowania do poprawki PTF i/lub stosuje poprawkę PTF. Funkcje tego programu zostały przejęte przez SMP .

IMASPZAP

Weryfikuje i/lub zastępuje instrukcje i/lub dane w module ładującym lub obiekcie programu

IMBLIST

Formatuje i drukuje moduły obiektów, moduły ładujące, obiekty programu i rekordy identyfikacji CSECT.

IMBMDMAP

Mapy ładują moduły. Funkcje tego programu zostały objęte przez IMBLIST.

IMCJQDMP

Samodzielny program do formatowania i drukowania systemowej kolejki zadań. Nie dotyczy MVS .

IMCOSJQD

Sformatuj i wydrukuj systemową kolejkę zadań. Nie dotyczy MVS .

IMDPRDMP

Formatuje i drukuje zrzuty, zestaw danych wymiany TSO i dane śledzenia GTF.

IMDSADMP

Samodzielny program do tworzenia szybkiego lub wolnego zrzutu pamięci głównej.

Różne programy wspierające

SORTOWAĆ

Narzędzie Sort/Merge to program, który sortuje rekordy w pliku w określonej kolejności lub scala wstępnie posortowane pliki. Jest bardzo często używany; często najczęściej używany program użytkowy w sklepie mainframe. Nowoczesne programy sortowania/scalania mogą również wybierać lub pomijać określone rekordy, podsumowywać rekordy, usuwać duplikaty, formatować rekordy i tworzyć proste raporty. Sortowanie/scalanie jest na tyle ważne, że istnieje wiele firm, z których każda sprzedaje swój własny pakiet sortowania/scalania dla komputerów mainframe IBM.

Oryginalny program sortowania/scalania IBM dla systemu OS/360, 360S-SM-023, nazwa programu IERRCO00 (alias SORT), obsługiwał tylko urządzenia pamięci masowej bezpośredniego dostępu (DASD) i taśmy IBM pierwszej generacji (2400). Wsparcie dla dysków drugiej generacji zapewniały produkty programowe IBM, takie jak 5734-SM1 i późniejszy 5740-SM1 (DFSORT, alias ICEMAN, również SORT).

SORT jest często wykonywany jako samodzielny program, w którym normalnie odczytuje dane wejściowe z pliku identyfikowanego przez DD SORTINi zapisuje posortowane dane wyjściowe do pliku identyfikowanego przez DD SORTOUT. Jest również często nazywane z innej aplikacji za pośrednictwem COBOL SORT czasownik lub połączenia do PL / i PLISRTx procedur, w których może użyć jednej SORTINlub SORTOUTpliki lub przekazanie rekordy mają być sortowane przez dzwoniącego i / lub przechodzą posortowane rekordy z powrotem do jednego rozmówcy na czas.

Operacją SORT sterują instrukcje sterujące, które są w dużej mierze zgodne z różnymi programami sortowania IBM i innych firm. Instrukcja SORTlub MERGEdefiniuje klucze sortowania — pola, na których dane mają być sortowane lub scalane. Ta instrukcja określa pozycję, długość i typ danych każdego klucza. RECORDOświadczenie opisuje format i długość rekordów w pliku wejściowym. Inne instrukcje pozwalają użytkownikowi określić, które rekordy powinny być uwzględnione lub wyłączone z sortowania oraz określić inne przekształcenia, jakie mają być wykonane na danych.

Klucze mogą być dowolną kombinacją danych znakowych EBCDIC lub ASCII , strefowych lub spakowanych dziesiętnych, binarnych stałoprzecinkowych ze znakiem lub bez znaku lub zmiennoprzecinkowych szesnastkowych. Klucze mogą znajdować się w dowolnym miejscu w rekordzie i nie muszą być ciągłe. Sortowanie można określić według dowolnej kombinacji kolejności rosnącej i malejącej według klucza.

Program sortujący OS/360, IERRCO00, działa poprzez dzielenie danych wejściowych na sekcje, sortowanie każdej sekcji w pamięci głównej i zapisywanie posortowanej sekcji w pośrednich zestawach danych na urządzeniach pamięci masowej o bezpośrednim dostępie (DASD) lub na taśmie magnetycznej . Końcowe fazy scalania następnie scalają sekcje, aby uzyskać posortowane dane wyjściowe. SORT wykorzystuje jedną z wielu technik dystrybucji sekcji między dodatkowymi urządzeniami pamięci masowej. Zwykle SORT może wybrać optymalną technikę, ale użytkownik może to zmienić. SORT ma trzy techniki, których można użyć, jeśli pośrednią pamięcią jest taśma, i dwie, jeśli dysk.

Techniki taśmowe to:

  • Zrównoważony (BALN) — bardziej wydajny, jeśli więcej napędów taśmowych jest dostępnych do przechowywania pośredniego.
  • Wielofazowy (POLY) — używany, gdy mniej napędów taśmowych jest dostępnych do przechowywania pośredniego.
  • Oscylacyjny (OSCL) — wykorzystuje więcej pamięci głównej. Rozmiar wejściowego zbioru danych musi być znany lub ściśle przybliżony.

Techniki dyskowe to:

  • Zrównoważony dostęp bezpośredni (BALN) — wykorzystuje od trzech do sześciu zestawów danych pamięci pośredniej.
  • Crisscross Direct Access (CRCX) — wykorzystuje od sześciu do siedemnastu pośrednich zestawów danych pamięci masowej, wymaga dwukrotnie większej pamięci głównej niż technika Balanced Direct Access.

Wyrazy łączące

OS/360 posiadał tylko edytor Linkage, dostępny w kilku konfiguracjach. DFSMSdfp dodał Binder jako alternatywę dla modułów ładujących i jako jedyną opcję dla obiektów programu.

Edytor powiązań

Edytor powiązania tworzy i zastępuje moduły ładujące w partycjonowanym zestawie danych z kombinacji kart sterujących, modułów obiektowych i innych modułów ładujących. Może zmienić nazwę lub zastąpić sekcję kontrolną (CSECT) i wykonywać kilka innych różnych funkcji. Pierwotnie był dostępny w kilku konfiguracjach w zależności od wymagań dotyczących przechowywania, ale edytor łączenia na poziomie E nie jest już dostępny, a edytor łączenia na poziomie F jest teraz znany po prostu jako edytor łączenia. W systemie z/OS edytor powiązania jest obecny tylko w celu zapewnienia zgodności.

Spoiwo

Spoiwo spełnia te same funkcje, co edytor powiązania. Dodatkowo obsługuje nowy format, obiekt programu, który jest funkcjonalnym odpowiednikiem modułu ładującego w Partitioned Data Set Extended (PDSE), z wieloma dodatkowymi możliwościami.

Kompilatory

Każdy język programowania używany w sklepie komputerowym będzie miał jeden lub więcej powiązanych kompilatorów, które tłumaczą program źródłowy na moduł obiektowy języka maszynowego. Następnie moduł obiektowy z kompilatora musi zostać przetworzony przez edytor powiązań, IEWL, aby utworzyć wykonywalny moduł ładujący.

IGYCRCTL jest typowym przykładem kompilatora; jest to kompilator dla bieżącego produktu IBM Enterprise COBOL for z/OS. (Było kilka poprzednich kompilatorów IBM COBOL o różnych nazwach.) Istnieje wiele innych kompilatorów dla różnych innych języków programowania.

IETASM

Asembler (E) był przeznaczony dla systemu OS/360 działającego na bardzo małych maszynach.

IEUASM

Asembler (F) był przeznaczony do normalnych instalacji OS/360.

IFOX00

Assembler (XF) był asemblerem systemu dla OS/VS1 i OS/VS2, zastępując Assembler (E) i (F), chociaż nie był z nimi w pełni kompatybilny. IBM wkrótce stworzył Assembler (XF) jako asembler systemowy dla DOS i VM.

IEV90

Assembler (H) i Assembler (H) Version 2 to asemblery produktów programowych, które są generalnie szybsze niż asemblery E, F i XF, chociaż nie są w pełni kompatybilne z żadnym z nich.

ASMA90

IBM High Level Assembler (HLASM) jest zasadniczo nową wersją Assemblera (H) w wersji 2 i jest jedynym asemblerem obsługiwanym przez IBM w systemach z/OS i z/VM. Zastępuje wszystkie starsze asemblery, chociaż nie jest z nimi w pełni kompatybilny.

Program modyfikacji systemu (SMP)

Program Modyfikacji Systemu (SMP) to narzędzie do instalowania usługi na OS/360 i następców, zastępując np. samodzielny montaż, edycję linków i zadania IMAPTFLE. Pierwotnie funkcja opcjonalna, jest obowiązkowa dla MVS/SP i nowszych, a wersja produktu programu, SMP/E, jest dołączona do nowszych systemów, np. z/OS.

Uwagi

Bibliografia

Zobacz też

Linki zewnętrzne