CICS - szybki przewodnik
CICS to system DB / DC używany w aplikacjach online. CICS został opracowany, ponieważ wsadowy system operacyjny może wykonywać tylko programy wsadowe. Programy CICS można pisać w językach COBOL, C, C ++, Java itp. Obecnie użytkownicy potrzebują informacji w ciągu kilku sekund iw czasie rzeczywistym. Aby zapewnić tak szybką usługę, potrzebujemy systemu, który może przetwarzać informacje online. CICS umożliwia użytkownikom komunikowanie się z systemem zaplecza w celu uzyskania żądanych informacji. Przykłady programów online obejmują system bankowości internetowej, rezerwację lotów itp. Poniższy rysunek przedstawia komponenty CICS i ich wzajemne powiązania -
Funkcje CICS
Główne funkcje wykonywane przez CICS w aplikacji są następujące:
CICS zarządza żądaniami od jednoczesnych użytkowników w aplikacji.
Chociaż wielu użytkowników pracuje nad systemem CICS, ale daje to użytkownikowi wrażenie, że jest tylko jednym użytkownikiem.
CICS zapewnia dostęp do plików danych w celu ich odczytu lub aktualizacji w aplikacji.
Funkcje CICS
Funkcje CICS są następujące -
CICS jest systemem operacyjnym samym w sobie, ponieważ zarządza własną pamięcią masową procesora, ma własnego menedżera zadań, który obsługuje wykonywanie wielu programów i udostępnia własne funkcje zarządzania plikami.
CICS zapewnia środowisko online w wsadowym systemie operacyjnym. Przesłane zlecenia są wykonywane natychmiast.
CICS to uogólniony interfejs przetwarzania transakcji.
Możliwe jest jednoczesne posiadanie dwóch lub więcej regionów CICS, ponieważ CICS działa jako zadanie wsadowe w systemie operacyjnym na zapleczu.
Sam CICS działa jako system operacyjny. Jego zadaniem jest zapewnienie środowiska do wykonywania aplikacji online. CICS działa w jednym regionie, partycji lub przestrzeni adresowej. CICS obsługuje planowanie programów działających w jego ramach. CICS działa jako zadanie wsadowe i możemy je przeglądać w buforze, wydając komendę PREFIX CICS *. Istnieje pięć głównych usług świadczonych przez CICS. Wszystkie te usługi razem wykonują zadanie.
Środowisko CICS
Oto usługi, które będziemy szczegółowo omawiać krok po kroku -
- Usługi systemowe
- Usługi transmisji danych
- Usługi przetwarzania danych
- Usługi programowania aplikacji
- Usługi monitorowania
- Usługi systemowe
CICS utrzymuje funkcje kontrolne do zarządzania alokacją lub cofaniem alokacji zasobów w systemie, które są następujące:
Task Control- Kontrola zadań zapewnia funkcje planowania zadań i wielozadaniowości. Dba o stan wszystkich zadań CICS. Kontrola zadań przydziela czas procesora między współbieżnymi zadaniami CICS. To się nazywamultitasking. CICS stara się nadać priorytet czasowi odpowiedzi na najważniejsze zadanie.
Program Control- Kontrola programów zarządza ładowaniem i zwalnianiem programów użytkowych. Zaraz po rozpoczęciu zadania konieczne staje się powiązanie go z odpowiednim programem użytkowym. Chociaż wiele zadań może wymagać użycia tego samego programu użytkowego, CICS ładuje tylko jedną kopię kodu do pamięci. Każde zadanie niezależnie przechodzi przez ten kod, więc wielu użytkowników może uruchamiać transakcje, które jednocześnie używają tej samej fizycznej kopii programu aplikacji.
Storage Control- Kontrola pamięci zarządza pozyskiwaniem i zwalnianiem pamięci głównej. Kontrola pamięci masowej pozyskuje, kontroluje i zwalnia pamięć dynamiczną. Pamięć dynamiczna jest używana dla obszarów wejścia / wyjścia, programów itp.
Interval Control - Interval Control oferuje usługi timera.
Usługi transmisji danych
Interfejs usług transmisji danych z telekomunikacyjnymi metodami dostępu, takimi jak BTAM, VTAM i TCAM, do obsługi żądań przesyłania danych z programów aplikacji.
CICS zwalnia programy aplikacyjne z ciężaru zajmowania się problemami sprzętowymi terminali dzięki zastosowaniu Basic Mapping Support (BMS).
CICS zapewnia obsługę wielu regionów (MRO), przez którą może się komunikować więcej niż jeden region CICS w tym samym systemie.
CICS zapewnia komunikację międzysystemową (ISC), za pośrednictwem której region CICS w systemie może komunikować się z regionem CICS w innym systemie.
Usługi przetwarzania danych
Interfejs usług obsługi danych z metodami dostępu do danych, takimi jak BDAM, VSAM itp.
CICS ułatwia obsługę żądań obsługi danych z programów użytkowych. CICS udostępnia programistom aplikacji zestaw komend do obsługi zbioru danych i dostępu do bazy danych oraz powiązanych operacji.
Usługi Data Handling Services łączą się z metodami dostępu do baz danych, takimi jak IMS / DB, DB2, itp. Oraz ułatwiają obsługę żądań baz danych z programów aplikacyjnych.
CICS ułatwia zarządzanie integralnością danych poprzez kontrolę jednoczesnych aktualizacji rekordów, ochronę danych jako zadanie ABEND oraz ochronę danych w przypadku awarii systemu.
Usługi programowania aplikacji
Interfejs usług programowania aplikacji z programami użytkowymi. Usługi programowania aplikacji CICS zapewniają takie funkcje, jak tłumaczenie na poziomie poleceń, CEDF (narzędzie do debugowania) i CECI (narzędzie do interpretowania poleceń). Bardziej szczegółowo omówimy w nadchodzących modułach.
Usługi monitorowania
Usługi monitorowania monitorują różne zdarzenia w przestrzeni adresowej CICS. Zawiera szereg informacji statystycznych, które można wykorzystać do dostrojenia systemu.
Musimy znać podstawowe terminy używane w CICS, aby lepiej zrozumieć, jak to działa. Aplikacje używają CICS do komunikacji ze zdalnymi i lokalnymi terminalami i podsystemami.
Terminal IBM 3270
System wyświetlania informacji 3270 to rodzina terminali wyświetlaczy i drukarek. Do połączenia z komputerem mainframe za pośrednictwem kontrolerów IBM używano terminali 3270. Obecnie dostępne jest oprogramowanie emulujące 3270, co oznacza, że nawet zwykłe komputery PC mogą być używane jako terminale 3270. Terminale 3270 są głupie i same nie przetwarzają. Całe przetwarzanie musi być wykonane przez aplikację. Terminale IBM składają się z następujących komponentów -
Monitor CRT
Monitor CRT wyświetla dane wyjściowe lub pola wejściowe programu użytkowego. Zrzut ekranu monitora CRT 3278 pokazano poniżej. Ma następujące cechy -
Jest w stanie wyświetlić 1920 znaków.
Każda z tych pozycji 1920 znaków jest indywidualnie adresowana.
Aplikacja COBOL może wysyłać dane do wszystkich pozycji na ekranie.
Charakterystyki wyświetlania, takie jak intensywność, chronione, niechronione pole można ustawić za pomocą BMS, o czym będziemy szczegółowo omawiać w kolejnych modułach.
Klawiatura
Klawisze klawiatury IBM są podzielone na następujące dwie kategorie -
Non-AID Keys- Wszystkie inne klawisze alfabetu, cyfry, znaki interpunkcyjne itp. Nie są klawiszami pomocnymi. Gdy użytkownik wpisze tekst lub liczby, używając klawiszy innych niż pomocnicze, CICS nie będzie nawet wiedział, czy użytkownik coś wpisuje, czy nie.
AID Keys- Klucze AID są znane jako klucze identyfikujące uwagę. CICS może wykrywać tylko klucze AID. Po wpisaniu wszystkich danych wejściowych, tylko gdy użytkownik naciśnie jeden z klawiszy AID, CICS przejmuje kontrolę. Klawisze AID: ENTER, PF1 do PF24, PA1 do PA3, CLEAR. Klucze AID są dalej podzielone na dwie kategorie -
PF Keys- Klawisze PF są znane jako klawisze funkcyjne. Klucze PF umożliwiają przesyłanie danych z terminala do CICS. Klawisze PF to ENTER i PF1 do PF24.
PA Keys- Klucze PA są znane jako klucze dostępu do programu. Klucze PA nie pozwalają na przesyłanie danych między terminalem a CICS. Klawisze PA to PA1 do PA3 i CLEAR.
Transakcja
Program CICS jest wywoływany za pośrednictwem transakcji. Transakcja CICS to zbiór logicznie powiązanych programów w aplikacji. Całość można podzielić logicznie na kilka transakcji.
Identyfikatory transakcji o długości od 1 do 4 znaków służą do identyfikacji transakcji, które użytkownik chce wykonać.
Programista łączy jeden program z identyfikatorem transakcji, który jest używany do wywoływania wszystkich programów użytkowych dla tej konkretnej transakcji.
Zadanie
Zadanie to jednostka pracy specyficzna dla użytkownika.
Użytkownicy wywołują aplikację przy użyciu jednego z identyfikatorów transakcji. CICS wyszukuje identyfikator transakcji, aby dowiedzieć się, który program należy wywołać jako pierwszy w celu wykonania żądanej pracy. Tworzy zadanie do wykonania pracy i przekazuje kontrolę do wspomnianego programu.
Transakcję można zakończyć za pomocą kilku zadań.
Zadanie może odbierać i wysyłać dane do terminala, który je uruchomił. Potrafi czytać i zapisywać pliki, a także może rozpoczynać inne zadania.
Zadanie a transakcja
Różnica między transakcją a zadaniem polega na tym, że kilku użytkowników może wywołać transakcję, ale każdy użytkownik inicjuje własne zadanie.
LUW
LUW oznacza logiczną jednostkę pracy. LUW stwierdza, że dana praca powinna być wykonana w całości lub wcale. Zadanie może zawierać kilka logicznych jednostek pracy w CICS. Więcej na ten temat omówimy w kolejnych modułach.
Podanie
Aplikacja to szereg logicznie pogrupowanych programów tworzących kilka transakcji, które są używane do wykonania określonego zadania dla użytkownika końcowego.
Pięć opisanych wcześniej komponentów systemu CICS to wygodne grupowanie programów systemu CICS, z których każdy wykonuje swoje własne, wyspecjalizowane funkcje. Rdzeń CICS, znany jako CICS Nucleus, składa się z dostarczonych przez IBM programów sterujących CICS i tabel sterujących.
Programy sterujące
Jądro CICS jest konstruowane przez programy sterujące i odpowiadające im tabele sterujące. Zapewnia wyjątkowe korzyści. Dzięki temu system CICS jest wysoce elastyczny, a tym samym łatwy w utrzymaniu. Poniżej przedstawiono ważne programy sterujące CICS -
TCP
Protokół TCP jest znany jako program sterujący terminalem.
TCP jest używany do odbierania wiadomości z terminala.
Utrzymuje wymagania sprzętowe dotyczące komunikacji.
Żąda od CICS zainicjowania zadań.
KCP
KCP jest znany jako program kontroli zadań.
KCP służy do jednoczesnej kontroli wykonywania zadań i związanych z nimi właściwości.
Obsługuje wszystkie zagadnienia związane z wielozadaniowością.
PCP
PCP jest znany jako Program sterujący programem.
PCP służy do lokalizowania i ładowania programów do wykonania.
Przekazuje kontrolę między programami i na końcu zwraca ją z powrotem do CICS.
FCP
FCP jest znany jako program kontroli plików.
FCP służy do dostarczania aplikacjom usług takich jak odczyt, wstawianie, aktualizowanie lub usuwanie rekordów w pliku.
Zachowuje wyłączną kontrolę nad rekordami w celu zachowania integralności danych podczas aktualizacji rekordów.
SCP
SCP jest znany jako program kontroli pamięci. Służy do kontrolowania przydzielania i zwalniania pamięci w regionie CICS.
Tabele kontrolne
CICS składa się z dostarczonych przez IBM programów sterujących CICS i tabel. Tabele te należy odpowiednio zaktualizować o informacje o aplikacji, aby umożliwić pomyślne wykonywanie aplikacji CICS. Poniżej znajdują się ważne tabele kontrolne -
TCT
TCT jest znany jako tablica kontrolna terminala.
Kiedy logujemy się do terminala CICS, w tabeli TCT dokonywany jest wpis.
TCT zawiera identyfikatory terminali, które są podłączone do bieżącego regionu CICS.
Program sterujący terminalem wraz z tablicą sterującą terminala rozpoznają dane przychodzące z terminala.
PCT
PCT jest znane jako tabela sterowania programem.
Zawiera identyfikatory transakcji (TRANSID) i odpowiadające im nazwy programów lub identyfikatory programów.
TRANSID jest unikalny w tabeli PCT.
PPT
PPT jest znany jako Tabela programów przetwarzania. PPT zawiera nazwę programu lub nazwę zestawu map, licznik użycia zadań, język, rozmiar, adres pamięci głównej, adres biblioteki ładowania itp.
Nazwa programu lub zestawu map jest unikalna w tabeli PPT.
CICS odbiera transakcję, a odpowiednia nazwa programu jest przypisywana do transakcji z PCT. Sprawdza, czy program jest załadowany, czy nie. Jeśli jest załadowany, to licznik wykorzystania zadań jest zwiększany o 1. Jeśli program nie jest załadowany, program jest najpierw ładowany, a licznik wykorzystania zadań jest ustawiony na 1. Pobiera adres biblioteki ładowania z tabeli PPT.
FCT
FCT jest znany jako tabela kontroli plików.
Zawiera nazwy plików, typ pliku, długość rekordu itp.
Wszystkie pliki używane w programie CICS muszą być zadeklarowane w FCT i są otwierane i zamykane przez sam CICS.
Transakcja
Gdy identyfikator transakcji TP02 jest wprowadzany na terminalu CICS, najpierw sprawdza, czy istnieje program powiązany z tym identyfikatorem transakcji w tabeli PCT. Jeśli znajdzie taki, sprawdza w tabeli PPT, gdzie znajduje się Program, aby go wykonać.
Jeśli program jest już dostępny w pamięci, rozpoczyna wykonywanie tego konkretnego programu; jeśli nie, ładuje program do pamięci z pamięci dodatkowej, a następnie rozpoczyna jego wykonywanie.
Cykl życia transakcji
Cykl życia transakcji składa się z następujących kroków -
Krok 1
Operator terminala inicjuje transakcję wpisując od 1 do 4 znaków id transakcji i naciskając klawisz ENTER.
Krok 2
TCP okresowo sprawdza wszystkie terminale pod kątem danych wejściowych. Po odebraniu wiadomości wykonuje następujące czynności -
Nakazuje SCP utworzenie TIOA.
Umieszcza wiadomość w TIOA.
Przekazuje kontrolę do KCP.
Krok 3
KCP przejmuje kontrolę od TCP i wykonuje następujące czynności -
Sprawdza identyfikator transakcji i zabezpieczenia.
Nakazuje punktowi SCP utworzenie obszaru kontroli zadań.
Przypisuje priorytet do zadania na podstawie priorytetu terminala (ustawionego w TCT), priorytetu operatora (ustawionego w SNT) i priorytetu transakcji (ustawionego w PCT).
Dodaje zadanie do kolejki programów oczekujących.
Wysyła oczekujące programy w kolejności priorytetu.
Przekazuje kontrolę do PCP.
Krok 4
PCP przejmuje kontrolę od KCP i wykonuje następujące czynności -
Lokalizuje program i w razie potrzeby ładuje go.
Przenosi sterowanie do programu aplikacji.
Krok 5
Program aplikacji przejmuje kontrolę z PCP i wykonuje następujące czynności -
Żąda od TCP umieszczenia wiadomości w obszarze WORKING STORAGE programu.
Prosi FCP o pobranie rekordów z plików.
Krok 6
FCP przejmuje kontrolę z aplikacji i wykonuje następujące czynności -
Żąda obszaru roboczego plików z punktu SCP.
Informuje KCP, że to zadanie może poczekać do zakończenia operacji we / wy.
Krok 7
KCP wykonuje następujące czynności -
Wysyła następne zadanie w kolejce.
Po zakończeniu operacji we / wy ponownie wywołuje stare zadanie.
Przekazuje kontrolę do FCP.
Krok 8
FCP zwraca sterowanie do programu aplikacji.
Krok 9
Aplikacja wykonuje następujące czynności -
Przetwarza dane pliku.
Żąda od TCP wysłania komunikatu we / wy.
Zwraca kontrolę do PCP.
Krok 10
PCP zwraca kontrolę z powrotem do KCP, żądając zakończenia zadania.
Krok 11
KCP instruuje SCP, aby zwolnił całą pamięć przydzieloną do zadania (z wyjątkiem TIOA).
Krok 12
TCP wykonuje następujące czynności -
Wysyła dane wyjściowe do terminala.
Prosi SCP o zwolnienie TIOA.
Transakcje CICS są używane do wykonywania wielu operacji w regionie CICS. Będziemy szczegółowo omawiać ważne transakcje CICS dostarczone przez IBM.
CESN
CESN jest znany jako CICS Execute Sign On.
CESN służy do logowania się do regionu CICS.
Aby zalogować się do CICS, musimy podać identyfikator użytkownika i hasło podane przez administratora CICS. Poniższy zrzut ekranu pokazuje, jak wygląda ekran logowania -
CEDA
CEDA jest znany jako CICS Execute Definition and Administration. Jest używany przez administratorów systemu CICS do definiowania pozycji tabeli CICS i innych czynności administracyjnych.
CEMT
CEMT jest znany jako CICS Execute Master Terminal. Służy do sprawdzania i aktualizowania statusu środowisk CICS, a także do innych operacji systemowych.
Za pomocą polecenia CEMT możemy zarządzać transakcjami, zadaniami, plikami, programami itp.
Aby uzyskać wszystkie możliwe opcje, wpisz CEMT i naciśnij ENTER. Wyświetli wszystkie opcje.
CEMT jest zasadniczo używany do ładowania nowego programu do CICS lub do ładowania nowej kopii programu do CICS po zmianie programu lub zestawu map.
Przykład
Można nadpisać stan wyświetlanego pliku, aby go zmienić. Poniższy przykład pokazuje, jak zamknąć plik -
CEMT ** Press ENTER & Following Screen is displayed ** STATUS: ENTER ONE OF THE FOLLOWING Inquire Perform Set ** Command to close a file ** CEMT SET FILE (file-name) CEMT I FILE (file-name)
CECI
CECI jest znane jako CICS Execute Command Interpreter. Wiele poleceń CICS można wykonać za pomocą CECI.
CECI służy do sprawdzania składni polecenia. Wykonuje polecenie tylko wtedy, gdy składnia jest poprawna.
Wpisz opcję CECI na pustym ekranie CICS po zalogowaniu. Wyświetla listę dostępnych opcji.
Przykład
Poniższy przykład pokazuje, jak wysłać zmapowane dane wyjściowe do terminala. O MAPS będziemy rozmawiać w kolejnych modułach.
CECI SEND MAP (map-name) MAPSET (mapset-name) ERASE
CEDF
CEDF jest znany jako CICS Execute Debug Facility. Służy do debugowania programu krok po kroku, co pomaga w wyszukiwaniu błędów.
Wpisz CEDF i naciśnij enter w regionie CICS. Terminal jest w trybie EDF zostanie wyświetlony komunikat. Teraz wpisz identyfikator transakcji i naciśnij klawisz Enter. Po zainicjowaniu, z każdym klawiszem enter, wykonywana jest linia. Przed wykonaniem jakiejkolwiek komendy CICS pokazuje ekran, na którym możemy zmodyfikować wartości przed przejściem dalej.
CMAC
CMAC jest znany jako CICS Messages for Abend Codes. Służy do znalezienia wyjaśnienia i powodów dla kodów CICS Abend Codes.
Przykład
Poniższy przykład pokazuje, jak sprawdzić szczegóły kodu Abend -
CMAC abend-code
CESF
CESF jest znany jako CICS Execute Sign Off. Służy do wylogowywania się z regionu CICS.
Przykład
Poniższy przykład pokazuje, jak wylogować się z regionu CICS -
CESF LOGOFF
CEBR
CEBR jest znany jako CICS Wykonaj Tymczasowe przeglądanie pamięci. Służy do wyświetlania zawartości kolejki pamięci tymczasowej lub TSQ.
CEBR jest używany podczas debugowania, aby sprawdzić, czy elementy kolejki są poprawnie zapisywane i pobierane. Więcej o TSQ omówimy w kolejnych modułach.
Przykład
Poniższy przykład pokazuje, jak wywołać polecenie CEBR -
CEBR queue-id
Koncepcje CICS
Każdą komendę można było wykonać, wykonując serię makr CICS. Omówimy kilka podstawowych funkcji, które pomogą nam lepiej zrozumieć pojęcia -
Wielozadaniowość
Ta funkcja systemu operacyjnego umożliwia jednoczesne wykonywanie więcej niż jednego zadania. Zadanie może polegać na współużytkowaniu tego samego programu lub korzystaniu z różnych programów. CICS planuje zadanie we własnym regionie.
Wielowątkowość
Ta funkcja systemu operacyjnego umożliwia wykonywanie więcej niż jednego zadania w tym samym programie. Aby wielowątkowość była możliwa, program użytkowy powinien mieć rozszerzeniere-entrant program w systemie operacyjnym lub quasi-reentrant w ramach CICS.
Ponowne wejście
Program ponownego wejścia to taki, który nie zmienia się i może ponownie wejść do siebie i kontynuować przetwarzanie po przerwie w systemie operacyjnym.
Quasi-reentrancy
Program quasi-reentrant to program ponownego wejścia w środowisku CICS. CICS zapewnia ponowne wejście, uzyskując unikalną powierzchnię magazynową dla każdego zadania. Pomiędzy komendami CICS, CICS ma wyłączne prawo do używania zasobów procesora i może wykonywać inne komendy CICS związane z innymi zadaniami.
Czasami wielu użytkowników korzysta jednocześnie z tego samego programu; to jest to co nazywamymulti-threading. Na przykład załóżmy, że 50 użytkowników korzysta z programu A. Tutaj CICS zapewni 50 pamięci roboczych dla tego programu, ale jeden podział procedur. Ta technika jest znana jakoquasi-reentrancy.
Programy CICS są napisane w języku COBOL na komputerach mainframe. Będziemy dyskutować o napisaniu prostego programu w języku COBOL-CICS, jego kompilacji, a następnie wykonaniu.
Program CICS
Napiszemy prosty program w języku COBOL-CICS, który wyświetli komunikat na ekranie wyjściowym CICS. Ten program ma na celu zademonstrowanie czynności wymaganych do wykonania programu COBOL-CICS. Poniżej przedstawiono kroki, aby zakodować prosty program -
Krok 1
Zaloguj się do komputerów typu mainframe i otwórz sesję TSO.
Krok 2
Utwórz nowy PDS, w którym będziemy kodować nasz program.
Krok 3
Utwórz nowego członka wewnątrz PDS i zakoduj następujący program -
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 WS-MESSAGE PIC X(40). 01 WS-LENGTH PIC S9(4) COMP. PROCEDURE DIVISION. A000-MAIN-PARA. MOVE 'Hello World' TO WS-MESSAGE MOVE '+12' TO WS-LENGTH EXEC CICS SEND TEXT FROM (WS-MESSAGE) LENGHT(WS-LENGTH) END-EXEC EXEC CICS RETURN END-EXEC.
Krok 4
Po zakodowaniu programu musimy go skompilować. Możemy skompilować program za pomocą następującego JCL -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //CICSCOB EXEC CICSCOB, //COPYLIB = ABC.XYZ.COPYLIB, //LOADLIB = ABC.XYZ.LOADLIB //LIB JCLLIB ORDER = CICSXXX.CICS.XXXPROC //CPLSTP EXEC DFHEITVL //TRN.SYSIN DD DSN = ABC.XYZ.PDS(HELLO),DISP = SHR //LKED.SYSIN DD * NAME HELLO(R) //
Krok 5
Otwórz sesję CICS.
Krok 6
Teraz zainstalujemy program za pomocą następującego polecenia -
CEMT SET PROG(HELLO) NEW.
Krok 7
Uruchom program, używając powiązanego identyfikatora transakcji. Identyfikator transakcji jest nadawany przez Administratora. Pokaże następujące dane wyjściowe -
Kompilacja programu
Poniższy schemat blokowy przedstawia etapy kompilacji programu w języku COBOL-CICS -
Tłumacz
Funkcją translatora jest sprawdzanie błędów składniowych w komendach CICS. Przekłada je na równoważne instrukcje w języku COBOL.
Kompilator
Funkcją kompilatora jest rozszerzenie zeszytów języka COBOL. Kompiluje kod po sprawdzeniu kodu źródłowego pod kątem błędów składniowych.
Edytor powiązań
Funkcja Linkage Editor polega na łączeniu różnych modułów obiektów w celu utworzenia pojedynczego modułu ładowania.
BMS jest znany jako podstawowa obsługa mapowania. Aplikacja składa się ze sformatowanych ekranów, które działają jako pomost między terminalem a programami CICS. Do komunikacji między terminalem a programami CICS używamy usług wejścia / wyjścia terminala CICS. Używamy BMS do tworzenia projektów ekranów z odpowiednimi pozycjami i atrybutami. Oto funkcje BMS -
BMS działa jako interfejs między terminalem a programami CICS.
Projekt i format ekranu są niezależne od logiki aplikacji.
BMS sprawia, że aplikacja jest niezależna od sprzętu.
Sformatowany ekran
Ekran pokazany poniżej jest ekranem menu i może być zaprojektowany przy użyciu BMS. Jego kluczowe punkty są następujące -
Ekran może mieć tytuł, datę i wszelkie inne informacje, które mają zostać wyświetlone.
Opcje 1, 2 i 3 to pola bez nazw, które są tytułami ekranu.
W polu Selection musimy podać dane wejściowe. Dane wejściowe są następnie przesyłane do programu CICS w celu dalszego przetwarzania.
U dołu ekranu wyświetlane są klawisze czynności.
Wszystkie pola i sam ekran są zdefiniowane za pomocą makr BMS. Kiedy cała mapa jest już zdefiniowana, możemy użyć JCL do jej złożenia.
Podstawowe pojęcia BMS
Poniżej znajdują się podstawowe terminy, których będziemy używać w nadchodzących modułach -
Mapa
Mapa to format pojedynczego ekranu, który można zaprojektować za pomocą makr BMS. Może mieć nazwy zawierające od 1 do 7 znaków.
Mapset
Mapset to zbiór map połączonych ze sobą w celu utworzenia modułu ładowania. Powinien mieć wpis PPT. Może mieć nazwy od 1 do 7 znaków.
Makra BMS
Mapa BMS to program napisany w języku asemblera do zarządzania ekranami. Trzy makra używane do definiowania ekranu to DFHMSD, DFHMDI i DFHMDF.
DFHMSD
Makro DFHMSD generuje definicję zestawu map. Jest to identyfikator makra, który pokazuje, że rozpoczynamy zbiór map. Nazwa zestawu map jest nazwą modułu ładującego i musi istnieć wpis w tabeli PPT. Poniższa tabela przedstawia listę parametrów, które można zastosować w DFHMSD -
Sr.No Parametr i opis 1 TYPE
TYPE służy do definiowania typu mapy. Jeśli TYPE =
MAP - mapa fizyczna jest tworzona
DSECT - tworzona jest mapa symboliczna
&& SYSPARM - fizyczna i symboliczna, obie są tworzone.
FINAL - Aby wskazać koniec kodowania zestawu map .2 MODE
TRYB służy do wskazywania operacji wejścia / wyjścia. IF MODE =
IN - Tylko dla mapy wejściowej
OUT - Tylko dla mapy wyjściowej
INOUT Zarówno dla mapy wejściowej, jak i wyjściowej3 LANG
LANG = ASM / COBOL / PL1
Decyduje o języku struktury DSECT do skopiowania do programu użytkowego.4 STORAGE
Jeśli STORAGE =
AUTO - Aby uzyskać oddzielny symboliczny obszar mapy dla każdego
zestawu map BASE - Aby mieć tę samą bazę do przechowywania map symbolicznych z więcej niż jednego zestawu map5 CTRL
CRTL służy do definiowania żądań sterowania urządzeniami. Jeśli CTRL =
FREEKB - Aby odblokować klawiaturę
FRSET - Aby zresetować MDT do stanu zerowego
ALARM - Aby ustawić alarm w czasie wyświetlania ekranu
DRUKUJ - Aby wskazać zestaw map do wysłania do drukarki.6 TERM
TERM = typ zapewnia niezależność urządzenia, wymagana, jeśli używany jest terminal inny niż 3270.
7 TIOAPFX
TIOAPFX = TAK / NIE
TAK - Aby zarezerwować miejsce na prefiks (12 bajtów) dla poleceń BMS w celu prawidłowego dostępu do TIOA. Wymagane na poziomie komend CICS.Przykład
Poniższy przykład pokazuje, jak zakodować definicję zestawu map -
MPST01 DFHMSD TYPE = &SYSPARM, X CTRL = (FREEKB,FRSET), X LANG = COBOL, X STORAGE = AUTO, X TIOAPFX = YES, X MODE = INOUT, X TERM = 3270 DFHMSD TYPE = FINAL END
DFHMDI
Makro DFHMDI generuje definicje map. Pokazuje, że zaczynamy nową mapę. Po nazwie mapy następuje makro DFHMDI. Nazwa mapy służy do wysyłania i odbierania map. Poniższa tabela przedstawia parametry, których używamy wewnątrz makra DFHMDI -
Sr.No Parametr i opis 1 SIZE
SIZE = (linia, kolumna)
Ten parametr podaje rozmiar mapy. BMS pozwala nam zbudować ekran przy użyciu kilku map, a ten parametr staje się ważny, gdy używamy więcej niż jednej mapy w jednym zestawie map.2 LINE
Wskazuje numer początkowej linii mapy.
3 COLUMN
Wskazuje początkowy numer kolumny mapy.
4 JUSTIFY
Służy do określenia całej mapy lub pól mapy do wyrównania do lewej lub prawej strony.
5 CTRL
CRTL służy do definiowania żądań sterowania urządzeniami. Jeśli CTRL =
FREEKB - Aby odblokować klawiaturę
FRSET - Aby zresetować MDT do stanu zerowego
ALARM - Aby ustawić alarm w czasie wyświetlania ekranu
DRUKUJ - Aby wskazać mapę do wysłania do drukarki6 TIOAPFX
TIOAPFX = TAK / NIE
TAK - Aby zarezerwować miejsce na prefiks (12 bajtów) dla poleceń BMS, aby uzyskać prawidłowy dostęp do TIOA. Wymagane na poziomie komend CICS.
Przykład
Poniższy przykład pokazuje, jak zakodować definicję mapy -
MAPSTD DFHMDI SIZE = (20,80), X LINE = 01, X COLUMN = 01, X CTRL = (FREEKB,FRSET)
DFHMDF
Makro DFHMDF służy do definiowania nazw pól. Podana jest nazwa pola, względem którego jest kodowane makro DFHMDF. Ta nazwa pola jest używana wewnątrz programu. Nie zapisujemy nazwy pola względem pola stałego, którego nie chcemy używać w programie. W poniższej tabeli przedstawiono listę parametrów, których można używać w makrze DFHMDF -
Sr.No Parametr i opis 1 POS
To jest pozycja na ekranie, w której powinno pojawić się pole. Pole zaczyna się od bajtu atrybutu, więc jeśli kodujesz POS = (1,1), bajt atrybutu dla tego pola znajduje się w wierszu 1 w kolumnie 1, a rzeczywiste dane zaczynają się w kolumnie 2.
2 LENGTH
To jest długość pola, nie licząc bajtu atrybutu.
3 INITIAL
To są dane znakowe dla pola wyjściowego. Używamy tego do określania etykiet i tytułów na ekranie i utrzymywania ich niezależnie od programu. Na przykład dla pierwszego pola na ekranie menu zakodujemy: INITIAL = 'MENU'.
4 JUSTIFY
Służy do określenia całej mapy lub pól mapy do wyrównania do lewej lub prawej strony.
5 ATTRB
ATTRB = (ASKIP / PROT / UNPROT, NUM, BRT / NORM / DRK, IC, FSET) Opisuje atrybuty pola.
ASKIP - Autoskip. W tym polu nie można wprowadzić danych. Kursor przeskakuje do następnego pola.
PROT - pole chronione. W tym polu nie można wprowadzać danych. Wprowadzenie danych spowoduje stan blokady wejścia.
UNPROT - pole niezabezpieczone. Dane można wprowadzić i jest to używane we wszystkich polach wejściowych.
NUM - pole numeryczne. Dozwolone są tylko cyfry (od 0 do 9) i znaki specjalne („.” I „-”).
BRT - Jasne wyświetlanie pola (podświetlenie).
NORM - normalne wyświetlanie.
DRK - ciemny wyświetlacz.
IC - wstaw kursor. Kursor zostanie umieszczony w tym polu. W przypadku, gdy IC zostanie określony więcej niż jeden raz, kursor zostanie umieszczony w ostatnim polu.
FSET - zestaw pól. MDT jest tak ustawione, że dane pola mają być wysyłane z terminala do komputera hosta niezależnie od tego, czy pole jest faktycznie modyfikowane przez użytkownika.
6 PICIN
PICIN dotyczy pola danych, które jest używane jako dane wejściowe, np. PICIN = 9 (8).
7 PICOUT
PICIN dotyczy pola danych, które jest używane jako dane wyjściowe, np. PICOUT = Z (8).
Przykład
Poniższy przykład pokazuje, jak zakodować definicję pola -
DFHMDF POS = (01,01), X LENGTH = 7, X INITIAL = ‘SCREEN1’, X ATTRB = (PROT,NORM) STDID DFHMDF POS = (01,70), X LENGTH = 08, X ATTRB = (PROT,NORM)
BMS odbiera dane wprowadzone przez użytkownika, a następnie formatuje je w symboliczny obszar mapy. Aplikacja ma dostęp tylko do danych znajdujących się na mapie symbolicznej. Aplikacja przetwarza dane, a dane wyjściowe są wysyłane do mapy symbolicznej. BMS połączy dane wyjściowe danych symbolicznych z mapą fizyczną.
Mapa fizyczna
Mapa fizyczna to moduł ładowania w bibliotece ładowania, który zawiera informacje o sposobie wyświetlania mapy.
Zawiera szczegółowe informacje o atrybutach wszystkich pól na mapie i ich pozycjach.
Zawiera format wyświetlania mapy dla danego terminala.
Jest kodowany za pomocą makr BMS. Jest montowany oddzielnie i edytowany jako odsyłacz do biblioteki CICS.
Mapa symboliczna
Mapa symboliczna to kopia książki w bibliotece. Książka Copy jest używana przez aplikację CICS do wysyłania i odbierania danych z terminala.
Zawiera wszystkie zmienne dane, które są kopiowane do sekcji WORKINGSTORAGE programu.
Zawiera wszystkie nazwane pola. Programista aplikacji używa tych pól do odczytywania i zapisywania danych na mapie.
Skipper i Stopper Field
W przypadku niechronionego nazwanego pola w mapie, jeśli określiliśmy długość 10, oznacza to, że pole nazwy może przyjmować wartości, których długość nie może przekraczać 10. Ale kiedy wyświetlasz tę mapę za pomocą CICS i zaczynasz wprowadzać wartości dla tego pola na na ekranie możemy wprowadzić więcej niż 10 znaków, czyli do końca ekranu i możemy wpisać nawet w następnej linii. Aby temu zapobiec, używamy pola Skipper lub pola stopper. Pole Skipper byłoby zwykle polem bez nazwy o długości 1, określonym po nazwanym polu.
Skipper Field
Jeśli umieścimy pole skippera po nazwanym niezabezpieczonym polu, to podczas wpisywania wartości, po osiągnięciu określonej długości, kursor automatycznie przesunie się do następnego niezabezpieczonego pola. Poniższy przykład pokazuje, jak dodać pole skippera -
NUMBER DFHMDF POS = (01,01), X LENGTH = 5, X ATTRB = (UNPROT,IC) DFHMDF POS = (01,07), X LENGTH = 1, X ATTRB = (ASKIP)
Pole korka
Jeżeli po nazwanym niezabezpieczonym polu umieścimy pole stopera, to przy wpisywaniu wartości, po osiągnięciu określonej długości, kursor zatrzyma się. Poniższy przykład pokazuje, jak dodać pole korekcyjne -
NUMBER DFHMDF POS = (01,01), X LENGTH = 5, X ATTRB = (UNPROT,IC) DFHMDF POS = (01,07), X LENGTH = 1, X ATTRB = (PROT)
Bajt atrybutu
Bajt atrybutu dowolnego pola przechowuje informacje o fizycznych właściwościach pola. Poniższy diagram i tabela wyjaśniają znaczenie każdego bitu.
Pozycja bitu Opis Ustawienia bitów 0 i 1 Określone przez zawartość bitów od 2 do 7 2 i 3 Ochrona i zmiana 00 - niezabezpieczone alfanumeryczne
01 - niezabezpieczone numeryczne
10 - chronione zatrzymanie
11 - chronione pomiń4 i 5 Intensywność 00 - normalny
01 - normalny
10 - jasny
11 - brak obrazu (ciemny)6 Zawsze musi wynosić zero 7 Zmodyfikowany znacznik danych 0 - Pole nie zostało zmodyfikowane
1 - Pole zostało zmodyfikowaneZmodyfikowany znacznik danych
Zmodyfikowany znacznik danych (MDT) to ostatni bit w bajcie atrybutu.
MDT to flaga przechowująca pojedynczy bit. Określa, czy wartość ma zostać przesłana do systemu, czy nie.
Jego domyślną wartością jest 1, gdy wartość pola zostanie zmieniona.
Jeśli MDT ma wartość 0, nie można przesyłać danych; a jeśli MDT wynosi 1, dane mogą być przesyłane.
Wyślij mapę
Polecenie send map zapisuje sformatowane dane wyjściowe do terminala. Służy do przesłania mapy do terminala z aplikacji. Poniższy segment kodu pokazuje, jak wysłać mapę do terminala -
EXEC CICS SEND MAP('map-name') MAPSET('mapset-name') [FROM(data-area)] [LENGTH(data_value)] [DATAONLY] [MAPONLY] [CURSOR] [ERASE/ERASEAUP] [FREEKB] [FRSET] END-EXEC
W poniższej tabeli wymieniono parametry używane w poleceniu wysyłania mapy wraz z ich znaczeniem.
Sr.No Parametr i opis 1 Map-name
Jest to nazwa mapy, którą chcemy wysłać. Jest to obowiązkowe.
2 Mapset-name
Jest to nazwa zestawu map zawierającego nazwę mapy. Nazwa zestawu map jest potrzebna, chyba że jest taka sama jak nazwa mapy.
3 FROM
Jest używany, jeśli zdecydowaliśmy się użyć innej nazwy DSECT, musimy użyć opcji FROM (dsect-name) wraz z poleceniem SEND MAP.
4 MAPONLY
Oznacza to, że żadne dane z Twojego programu nie mają być scalane z mapą, a przesyłane są tylko informacje z mapy.
5 DATAONLY
Jest to logiczne przeciwieństwo MAPONLY. Używamy go do modyfikowania zmiennych danych w już utworzonym ekranie. Na ekran przesyłane są tylko dane z Twojego programu. Stałe w mapie nie są wysyłane.
6 ERASE
Powoduje to wymazanie całego ekranu przed wyświetleniem tego, co wysyłamy.
7 ERASEUP
Powoduje, że usuwane są tylko niezabezpieczone pola.
8 FRSET
Reset flagi wyłącza zmodyfikowany znacznik danych w bajcie atrybutu dla wszystkich pól na ekranie, zanim to, co wysyłasz, zostanie tam umieszczone.
9 CURSOR
Można go używać do umieszczania kursora na ekranie terminala. Kursor można ustawić, przesuwając -1 do L części pola, a następnie wysyłając mapę.
10 ALARM
Powoduje włączenie alarmu dźwiękowego.
11 FREEKB.
Klawiatura jest odblokowana, jeśli określimy FREEKB w mapie lub w poleceniu SEND.
12 PRINT
Umożliwia wydrukowanie polecenia SEND na drukarce.
13 FORMFEED
Powoduje to, że drukarka przywraca papier do początku następnej strony przed wydrukowaniem wydruku.
Otrzymaj mapę
Kiedy chcemy otrzymać dane wejściowe z terminala, używamy polecenia RECEIVE MAP. Parametry MAP i MAPSET mają dokładnie takie samo znaczenie jak dla polecenia SEND MAP. Poniższy segment kodu pokazuje, jak otrzymać mapę -
EXEC CICS RECEIVE MAP('map-name') MAPSET('mapset-name') [INTO(data-area)] [FROM(data-area)] [LENGTH(data_value)] END-EXEC
Wykonanie zestawu map
Poniższe kroki są niezbędne do opracowania i wykonania zestawu map -
Step 1 - Otwórz sesję OSP.
Step 2 - Utwórz nowy PDS.
Step 3 - Zakoduj zestaw map w nowym elemencie zgodnie z wymaganiami.
Step 4 - Złóż zestaw map za pomocą JCL dostarczonego przez administratora CICS.
Step 5 - Otwórz sesję CICS.
Step 6 - Zainstaluj program za pomocą polecenia -
PROG ZBIORU CEMT (nazwa zbioru map) NOWOŚĆ
Step 7 - Wpisz następujące polecenie, aby wysłać mapę do terminala -
CECI SEND MAP (nazwa-mapy) MAPSET (nazwa-zestawu-mapy) ERASE FREEKB
Każdy program aplikacji wymagałby interfejsu do interakcji z CICS. EIB (Execute Interface Block) działa jako interfejs umożliwiający aplikacjom komunikację z CICS. EBI zawiera informacje wymagane podczas realizacji programu.
Ograniczone czasowniki w języku COBOL
Podczas kodowania programu CICS nie możemy używać poleceń, które zwracają sterowanie bezpośrednio do MVS. Jeśli zakodujemy te czasowniki w języku COBOL, nie spowoduje to żadnego błędu kompilacji, ale możemy uzyskać nieprzewidywalne wyniki. Poniżej znajdują się czasowniki w języku COBOL, których nie należy używać w programie CICS -
Instrukcje we / wy plików, takie jak otwieranie, odczytywanie, zapisywanie, ponowne zapisywanie, zamykanie, usuwanie i uruchamianie. Wszystkie operacje we / wy plików w CICS są obsługiwane przez moduł kontroli plików i mają one własny zestaw instrukcji, takich jak READ, WRITE, REWRITE i DELETE, które będziemy omawiać w kolejnych modułach.
Sekcja plików i podział środowiska nie są wymagane.
Nie można używać instrukcji COBOL, które wywołują funkcje systemu operacyjnego, takie jak Accept, Date / Time.
Nie używaj DISPLAY, MERGE, STOP RUN i GO BACK.
Wykonaj blok interfejsu
Execute Interface Block (EIB) to blok sterujący, który jest ładowany automatycznie przez CICS dla każdego programu.
EBI jest unikalny dla zadania i istnieje na czas trwania zadania. Zawiera zestaw informacji związanych z systemem, odpowiadających zadaniu.
Zawiera informacje o identyfikatorze transakcji, godzinie, dacie itp., Które są używane przez CICS podczas wykonywania aplikacji.
Każdy program wykonywany w ramach zadania ma dostęp do tego samego EBI.
Dane w EIB w czasie wykonywania można przeglądać wykonując program w trybie CEDF.
Pola EBI
Poniższa tabela zawiera listę pól, które są obecne w EBI -
Pole EBI Klauzula PIC Opis EIBAID X (1) Wciśnięty klawisz pomocy EIBCALEN S9 (4) KOMP Zawiera długość DFHCOMMAREA EIBDATE S9 (7) COMP-3 Zawiera aktualną datę systemową EIBRCODE X (6) Zawiera kod zwrotu ostatniej transakcji EIBTASKN S9 (7) COMP-3 Zawiera numer zadania EIBTIME S9 (7) COMP-3 Zawiera aktualny czas systemowy EIBTRMID X (4) Identyfikator terminala EIBTRNID X (4) Identyfikator transakcji Klasyfikacja programów CICS
Programy CICS są podzielone na następujące trzy kategorie, które omówimy kolejno -
- Programy bez konwersacji
- Programy konwersacyjne
- Programy pseudo-konwersacyjne - omówimy w następnym module
Programy bez konwersacji
Podczas wykonywania programów bez konwersacji nie jest wymagana żadna interwencja człowieka. Wszystkie niezbędne dane wejściowe są dostarczane po uruchomieniu programu.
Są podobne do programów wsadowych działających w trybie wsadowym. Dlatego w CICS rzadko są rozwijane.
Można powiedzieć, że są używane tylko do wyświetlania sekwencji ekranów w regularnych odstępach czasu.
Przykład
Poniższy przykład przedstawia program bez konwersacji, który po prostu wyświetli „HELLO WORLD” na terminalu CICS jako wyjście -
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-MESSAGE PIC X(30). PROCEDURE DIVISION. ******************************************************** * SENDING DATA TO SCREEN * ******************************************************** MOVE 'HELLO WORLD' TO WS-MESSAGE EXEC CICS SEND TEXT FROM (WS-MESSAGE) END-EXEC ******************************************************** * TASK TERMINATES WITHOUT ANY INTERACTION FROM THE USER* ******************************************************** EXEC CICS RETURN END-EXEC.
Program konwersacyjny
Wysłanie wiadomości do terminala i otrzymanie odpowiedzi od użytkownika to tzw conversation. Aplikacja internetowa realizuje konwersację między użytkownikiem a aplikacją za pomocą pary poleceń WYŚLIJ i ODBIERZ. Kluczowe punkty programu konwersacyjnego są następujące:
System wysyła wiadomość na ekran i czeka na odpowiedź użytkownika.
Czas potrzebny na udzielenie odpowiedzi przez użytkownika jest określany jako Think Time. Ten czas jest dość długi, co jest główną wadą programów konwersacyjnych.
Użytkownik wprowadza niezbędne dane i naciska przycisk AID.
Aplikacja przetwarza dane wejściowe użytkownika i wysyła dane wyjściowe.
Program jest ładowany do pamięci głównej na początku i zachowywany do zakończenia zadania.
Przykład
Poniższy przykład przedstawia program do konwersji, który pobiera dane wejściowe od użytkownika, a następnie po prostu wyświetla te same dane wejściowe na terminalu CICS, co dane wyjściowe -
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-MESSAGE PIC X(30) VALUE SPACES. PROCEDURE DIVISION. MOVE 'ENTER MESSAGE' TO WS-MESSAGE ******************************************************** * SENDING DATA FROM PROGRAM TO SCREEN * ******************************************************** EXEC CICS SEND TEXT FROM (WS-MESSAGE) END-EXEC ******************************************************** * GETTING INPUT FROM USER * ******************************************************** EXEC CICS RECEIVE INTO(WS-MESSAGE) END-EXEC EXEC CICS SEND TEXT FROM (WS-MESSAGE) END-EXEC ******************************************************** * COMMAND TO TERMINATE THE TRANSACTION * ******************************************************** EXEC CICS RETURN END-EXEC.
Do tej pory zajmowaliśmy się programami bez konwersji i konwersji. Programy konwersji mają poważną wadę, ponieważ ichthink timejest znacznie wysoka. Aby rozwiązać ten problem, pojawiło się programowanie pseudo-konwersji. Teraz omówimy więcej programów do pseudo-konwersji.
Program pseudo-konwersji
Poniżej znajduje się sekwencja zdarzeń, które mają miejsce w programie pseudokonwersji -
Step 1 - System wysyła wiadomość na ekran i kończy transakcję, określając transakcję, która ma zostać rozpoczęta po otrzymaniu danych wejściowych użytkownika.
Step 2- System przydziela zasoby używane przez tę transakcję do innych transakcji wykonywanych w systemie. Możemy więc wykorzystać zasoby w programie pseudokonwersji, dopóki użytkownik nie poda danych wejściowych.
Step 3- System odpytuje wejście terminala w regularnych odstępach czasu. Po odebraniu danych wejściowych jest przetwarzane i wyświetlane są dane wyjściowe.
Step 4 - Aplikacja jest ładowana do pamięci głównej w razie potrzeby i zwalniana, gdy nie jest używana.
Techniki pseudo konwersji
Ważną kwestią, na którą należy zwrócić uwagę w pseudo-konwersacji, jest przekazywanie danych między każdym zadaniem. Omówimy techniki przekazywania danych.
COMMAREA
COMMAREA jest znana jako obszar komunikacji. COMMAREA służy do przekazywania danych między zadaniami. Poniższy przykład pokazuje, jak przekazać COMMAREA, gdzie WSCOMMAREA i WS-COMMAREA-LENGTH są zadeklarowane w sekcji składowania roboczego -
EXEC CICS RETURN
TRANSID ('transaction-id')
COMMAREA (WS-COMMAREA)
LENGTH (WS-COMMAREA-LENGTH)
END-EXEC.
DFHCOMMAREA
DFHCOMMAREA to specjalny obszar pamięci, który CICS zapewnia do każdego zadania.
Służy do przekazywania danych z jednego programu do innego programu. Programy mogą istnieć w tej samej transakcji lub też w różnych transakcjach.
Jest to zadeklarowane w sekcji Powiązania programu na poziomie 01.
Powinien mieć tę samą klauzulę dotyczącą obrazu, co WS-COMMAREA.
Dane można przenieść z powrotem z DFHCOMMAREA do WS-COMMAREA za pomocą instrukcji MOVE.
MOVE DFHCOMMAREA TO WS-COMMAREA.
Przykład
Po wysłaniu mapy zadanie kończy się i czeka na odpowiedź użytkownika. Na tym etapie dane muszą zostać zapisane, ponieważ mimo zakończenia zadania transakcja nie. Gdy transakcja ma zostać wznowiona, wymagałoby to wcześniejszego statusu zadania. Użytkownik wprowadza dane wejściowe. Teraz musi to zostać odebrane przez polecenie RECEIVE MAP, a następnie zatwierdzone. Poniższy przykład pokazuje, jak zadeklarować COMMAREA i DFHCOMMAREA -
WORKING-STORAGE SECTION.
01 WS-COMMAREA.
05 WS-DATA PIC X(10).
LINKAGE SECTION.
01 DFHCOMMAREA.
05 LK-DATA PIC X(10).
Pseudo kod
Poniżej podano logikę pseudokodu, którego używamy w pseudo programowaniu -
MOVE DFHCOMMAREA TO WS-COMMAREA
IF EIBCALEN = 0
STEP1: SEND MAP
STEP2: MOVE <internal-transaction-id1> to WS-COMMAREA
STEP3: ISSUE CONDITIONAL RETURN
ELSE
IF WS-COMMAREA = <internal-transaction-id1>
STEP4: RECEIVE MAP
STEP5: PROCESS DATA
STEP6: SEND OUTPUT MAP
STEP7: MOVE <internal-transaction-ID2> to WS-COMMAREA
STEP8: ISSUE CONDITIONAL RETURN
END-IF
END-IF
STEP9: REPEAT STEP3 TO STEP7 UNTIL EXIT
Przykład
Poniższy przykład przedstawia program pseudokonwersji -
******************************************************************
* PROGRAM TO DEMONSTRATE PSEUDO-CONVERSATION *
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(30).
01 WS-COMMAREA PIC X(10) VALUE SPACES.
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(10).
PROCEDURE DIVISION.
MOVE DFHCOMMAREA TO WS-COMMAREA
IF WS-COMMAREA = SPACES
******************************************************************
* TRANSACTION GETTING EXECUTED FOR THE FIRST TIME *
******************************************************************
MOVE 'HELLO' TO WS-MESSAGE
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
MOVE 'FIRST' TO WS-COMMAREA
******************************************************************
* TASK ENDS AS A RESULT OF RETURN. IF AID KEY PRESSED, NEXT *
* TRANSACTION SHOULD BE TP002. DATA PASSED FROM WS-COMMAREA TO *
* DFHCOMMAREA *
******************************************************************
EXEC CICS RETURN
TRANSID('TP002')
COMMAREA(WS-COMMAREA)
END-EXEC
******************************************************************
* IF COMMAREA IS NOT EMPTY , THEN TP002 HAS BEEN EXECUTED ONCE *
* ALREADY, USER INTERACTION IS FACILITATED BY RECEIVE *
******************************************************************
ELSE
EXEC CICS RECEIVE
INTO(WS-MESSAGE)
END-EXEC
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
******************************************************************
* TASK ENDS AS A RESULT OF RETURN, NO NEXT TRANSACTION SPECIFIED *
* TO BE EXECUTED *
******************************************************************
EXEC CICS RETURN
END-EXEC
END-IF.
Zalety pseudo konwersji
Oto zalety pseudokonwersji -
Zasoby są najlepiej wykorzystywane. Zasoby są zwalniane, gdy tylko program zostanie tymczasowo zawieszony.
Wygląda na to, że jest w trybie konwersacyjnym.
Ma lepszy czas odpowiedzi.
Instrukcje zwrotne
Poniżej przedstawiono dwa typy instrukcji powrotu, które są używane w programie CICS -
Return-1
Gdy zostanie wydana następująca bezwarunkowa instrukcja zwrotu, zadanie i transakcja (program) zostają zakończone.
EXEC CICS RETURN
END-EXEC.
Return-2
Po wydaniu następującego warunkowego powrotu, tj. Powrotu z instrukcją TRANSID, sterowanie wraca do CICS z następnym transidem do wykonania. Następna transakcja rozpoczyna się, gdy użytkownik naciśnie klawisz AID.
EXEC CICS RETURN
TRANSID ('trans-id')
[COMMAREA(WS-COMMAREA)]
END-EXEC.
Jak omówiliśmy we wcześniejszych modułach, klucze AID są znane jako klucze identyfikujące uwagę. CICS może wykrywać tylko klucze AID. Po wpisaniu wszystkich danych wejściowych, tylko gdy użytkownik naciśnie jeden z klawiszy AID, CICS przejmuje kontrolę. Klawisze AID obejmują ENTER, PF1 do PF24, PA1 do PA3 i CLEAR.
Sprawdzanie kluczy AID
Klawisz wciśnięty przez użytkownika jest sprawdzany za pomocą EIBAID.
EIBAID ma długość jednego bajtu i zawiera rzeczywistą wartość identyfikatora uwagi używaną w strumieniu wejściowym 3270.
CICS dostarcza nam wstępnie zakodowany zestaw zmiennych, które mogą być używane w aplikacji, pisząc następującą instrukcję -
COPY DFHAID
DFHAID
DFHAID to zeszyt, który jest używany w programach użytkowych w celu włączenia wstępnie zakodowanego zestawu zmiennych CICS. Następująca treść znajduje się w zeszycie DFHAID -
01 DFHAID.
02 DFHNULL PIC X VALUE IS ' '.
02 DFHENTER PIC X VALUE IS ''''.
02 DFHCLEAR PIC X VALUE IS '_'.
02 DFHCLRP PIC X VALUE IS '¦'.
02 DFHPEN PIC X VALUE IS '='.
02 DFHOPID PIC X VALUE IS 'W'.
02 DFHMSRE PIC X VALUE IS 'X'.
02 DFHSTRF PIC X VALUE IS 'h'.
02 DFHTRIG PIC X VALUE IS '"'.
02 DFHPA1 PIC X VALUE IS '%'.
02 DFHPA2 PIC X VALUE IS '>'.
02 DFHPA3 PIC X VALUE IS ','.
02 DFHPF1 PIC X VALUE IS '1'.
02 DFHPF2 PIC X VALUE IS '2'.
02 DFHPF3 PIC X VALUE IS '3'.
02 DFHPF4 PIC X VALUE IS '4'.
02 DFHPF5 PIC X VALUE IS '5'.
02 DFHPF6 PIC X VALUE IS '6'.
02 DFHPF7 PIC X VALUE IS '7'.
02 DFHPF8 PIC X VALUE IS '8'.
02 DFHPF9 PIC X VALUE IS '9'.
02 DFHPF10 PIC X VALUE IS ':'.
02 DFHPF11 PIC X VALUE IS '#'.
02 DFHPF12 PIC X VALUE IS '@'.
02 DFHPF13 PIC X VALUE IS 'A'.
02 DFHPF14 PIC X VALUE IS 'B'.
02 DFHPF15 PIC X VALUE IS 'C'.
02 DFHPF16 PIC X VALUE IS 'D'.
02 DFHPF17 PIC X VALUE IS 'E'.
02 DFHPF18 PIC X VALUE IS 'F'.
02 DFHPF19 PIC X VALUE IS 'G'.
02 DFHPF20 PIC X VALUE IS 'H'.
02 DFHPF21 PIC X VALUE IS 'I'.
02 DFHPF22 PIC X VALUE IS '¢'.
02 DFHPF23 PIC X VALUE IS '.'.
02 DFHPF24 PIC X VALUE IS '<'.
Przykład
Poniższy przykład pokazuje, jak używać zeszytu DFHAID w programie użytkowym -
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY DFHAID.
PROCEDURE DIVISION.
A000-AIDKEY-PARA.
EVALUATE EIBAID
WHEN DFHAID
PERFORM A000-PROCES-PARA
WHEN DFHPF1
PERFORM A001-HELP-PARA
WHEN DFHPF3
PERFORM A001-EXIT-PARA
END-EVALUATE.
Pozycjonowanie kursorem
Istnieją dwa sposoby zastąpienia pozycji określonej w definicji mapy.
Jednym ze sposobów jest określenie pozycji ekranu względem numeru wiersza i kolumny w opcji CURSOR w poleceniu wysyłania mapy.
Innym sposobem jest przesunięcie -1 do symbolicznej zmiennej mapy z przyrostkiem L. Następnie wyślij mapę z opcją CURSOR w SEND MAP.
Przykład
Poniższy przykład pokazuje, jak zastąpić pozycję kursora w polu NAZWA -
MOVE -1 TO NAMEL
EXEC CICS SEND
MAP ('map-name')
MAPSET ('name-field')
ERASE
FREEKB
CURSOR
END-EXEC.
Dynamiczne modyfikowanie atrybutów
Wysyłając mapę, jeśli chcemy mieć inne atrybuty dla pola innego niż określone w mapie, możemy to zmienić, ustawiając to pole w programie. Poniżej znajduje się wyjaśnienie dotyczące zastępowania atrybutów pola -
Aby przesłonić atrybuty pola, musimy uwzględnić DFHATTR w programie użytkowym. Jest dostarczany przez CICS.
Wymagany atrybut można wybrać z listy i przenieść do zmiennej pola symbolicznego z przyrostkiem „A”.
DFHATTR zawiera następujące treści -
01 CICS-ATTRIBUTES.
05 ATTR-UXN PIC X(01) VALUE SPACE.
05 ATTR-UXMN PIC X(01) VALUE 'A'.
05 ATTR-UXNL PIC X(01) VALUE 'D'.
05 ATTR-UXMNL PIC X(01) VALUE 'E'.
05 ATTR-UXBL PIC X(01) VALUE 'H'.
05 ATTR-UXMBL PIC X(01) VALUE 'I'.
05 ATTR-UXD PIC X(01) VALUE '<'.
05 ATTR-UXMD PIC X(01) VALUE '('.
05 ATTR-U9N PIC X(01) VALUE '&'.
05 ATTR-U9MN PIC X(01) VALUE 'J'.
05 ATTR-U9NL PIC X(01) VALUE 'M'.
05 ATTR-U9MNL PIC X(01) VALUE 'N'.
05 ATTR-U9BL PIC X(01) VALUE 'Q'.
05 ATTR-U9MBL PIC X(01) VALUE 'R'.
05 ATTR-U9D PIC X(01) VALUE '*'.
05 ATTR-U9MD PIC X(01) VALUE ')'.
05 ATTR-PXN PIC X(01) VALUE '-'.
05 ATTR-PXMN PIC X(01) VALUE '/'.
05 ATTR-PXNL PIC X(01) VALUE 'U'.
05 ATTR-PXMNL PIC X(01) VALUE 'V'.
05 ATTR-PXBL PIC X(01) VALUE 'Y'.
05 ATTR-PXMBL PIC X(01) VALUE 'Z'.
05 ATTR-PXD PIC X(01) VALUE '%'.
05 ATTR-PSN PIC X(01) VALUE '0'.
05 ATTR-PSMN PIC X(01) VALUE '1'.
05 ATTR-PSNL PIC X(01) VALUE '4'.
05 ATTR-PSMNL PIC X(01) VALUE '5'.
05 ATTR-PSBL PIC X(01) VALUE '8'.
05 ATTR-PSMBL PIC X(01) VALUE '9'.
05 ATTR-PSD PIC X(01) VALUE '@'.
05 ATTR-PSMD PIC X(01) VALUE "'".
CICS umożliwia nam dostęp do danych w plikach na wiele sposobów. Większość dostępów do plików jest przypadkowa w systemie online, ponieważ transakcje do przetworzenia nie są grupowane i sortowane w żadnej kolejności. Dlatego CICS obsługuje zwykłe metody dostępu bezpośredniego - VSAM i DAM (Metoda bezpośredniego dostępu). Umożliwia nam również dostęp do danych za pomocą menedżerów baz danych.
Losowy dostęp
Poniżej znajdują się polecenia używane do losowego przetwarzania -
Sr.No | Polecenia i opis |
---|---|
1 | CZYTAĆ Polecenie READ odczytuje dane z pliku przy użyciu klucza podstawowego. |
2 | PISAĆ Polecenie Write służy do dodawania nowych rekordów do pliku. |
3 | PRZEPISAĆ Polecenie REWRITE służy do modyfikowania rekordu, który jest już obecny w pliku. |
4 | USUNĄĆ Polecenie DELETE służy do usuwania rekordu znajdującego się w pliku. |
Dostęp sekwencyjny
Poniżej znajdują się polecenia, które są używane do sekwencyjnego przetwarzania -
Sr.No | Polecenia i opis |
---|---|
1 | STARTBR STARTBR jest znane jako rozpoczęcie przeglądania. |
2 | READNEXT / READPREV Kiedy wydajemy polecenie STARTBR, nie udostępnia on rekordów. |
3 | RESETBR Polecenie RESETBR pozwala nam zresetować nasz punkt początkowy w środku przeglądania. |
4 | ENDBR Gdy skończymy odczytywać plik po kolei, przerywamy przeglądanie za pomocą polecenia ENDBR. |
Istnieje wiele typów plików abendsoraz błędy, które można napotkać podczas korzystania z aplikacji CICS. Błędy mogą wynikać zarówno z problemów sprzętowych, jak i oprogramowania. Będziemy omawiać błędy i obsługę błędów w tym module.
Błędy CICS
Poniżej przedstawiono błędy CICS, które mogą wystąpić podczas wykonywania aplikacji CICS -
Niektóre oczekiwane błędy CICS pojawiają się, gdy warunki w systemie CICS nie są normalne. Na przykład, jeśli czytamy konkretny rekord i rekord nie zostanie znaleziony, otrzymujemy błąd „Nie znaleziono”.Mapfailjest podobnym błędem. Błędy w tej kategorii są obsługiwane przez jawną logikę w programie.
Błędy logiczne powstają z pewnych powodów, takich jak dzielenie przez zero, niedozwolony znak w polu numerycznym lub błąd identyfikatora transakcji.
Błędy związane ze sprzętem lub innymi stanami systemu są poza kontrolą aplikacji. Na przykład, uzyskanie błędu wejścia / wyjścia podczas uzyskiwania dostępu do pliku.
Polecenia obsługi błędów
CICS zapewnia kilka mechanizmów identyfikowania błędów i obsługi ich w naszych programach. Poniżej znajdują się polecenia używane do obsługi oczekiwanych błędów CICS -
Sr.No | Obsługa poleceń i opis |
---|---|
1 | Stan uchwytu Warunek uchwytu służy do przenoszenia kontroli nad programem do akapitu lub etykiety procedury. |
2 | Handle Abend Jeśli program nie działa z jakichś powodów, takich jak błąd wejścia-wyjścia, można to zrobić za pomocą komendy Handle Abend CICS. |
3 | Przerwij Polecenie Abend służy do celowego zakończenia zadania. |
4 | Ignoruj warunek Warunek ignorowania jest używany, gdy nie chcemy, aby żadne działanie nie było podejmowane, jeśli wystąpi określone przerwanie lub błąd, o którym mowa w warunku ignorowania. |
5 | Nohandle Dla dowolnej komendy CICS można określić wartość Nohandle. |
Program sterujący programem CICS (PCP) zarządza przepływem programów użytkowych. Wszystkie aplikacje muszą mieć wpis w tabeli programów przetwarzania. Poniżej znajdują się polecenia, które są używane do usług kontroli programu -
- XCTL
- Link
- Load
- Release
- Return
Programowe poziomy logiczne
Aplikacje uruchamiane w CICS mają różne poziomy logiczne. Pierwszy program, który bezpośrednio otrzymuje sterowanie, znajduje się na najwyższym poziomie logicznym, tj. Poziomie 1. Program połączony jest na następnym poziomie logicznym z programu łączącego. Programy XCTL działają na tym samym poziomie. Będzie jasne, kiedy przejdziemy przez Link i XCTL, w dalszej części tego modułu. Poniższy obraz przedstawia poziomy logiczne -
XCTL
Podstawowe wyjaśnienie XCTL jest następujące -
Polecenie XCTL służy do przekazywania kontroli z jednego programu do drugiego na tym samym poziomie.
Nie oczekuje powrotu kontroli.
Działa podobnie do instrukcji GO TO.
Program XCTL może być pseudokonwersacją.
Przykład
Poniższy przykład pokazuje, jak użyć polecenia XCTL do przekazania kontroli do innego programu -
IDENTIFICATION DIVISION.
PROGRAM-ID. PROG1.
WORKING-STORAGE SECTION.
01 WS-COMMAREA PIC X(100).
PROCEDURE DIVISION.
EXEC CICS XCTL
PROGRAM ('PROG2')
COMMAREA (WS-COMMAREA)
LENGTH (100)
END-EXEC.
To polecenie przekazuje sterowanie do przekazania do programu „PROG2” ze 100 bajtami danych. COMMAREA jest parametrem opcjonalnym i jest nazwą obszaru zawierającego dane do przekazania lub obszaru, do którego mają zostać zwrócone wyniki.
Połączyć
Polecenie Link służy do przeniesienia sterowania do innego programu na niższym poziomie. Oczekuje powrotu kontroli. Połączony program nie może prowadzić pseudo-konwersacji.
Przykład
Poniższy przykład pokazuje, jak użyć polecenia Link, aby przekazać kontrolę do innego programu -
IDENTIFICATION DIVISION.
PROGRAM-ID. PROG1.
WORKING-STORAGE SECTION.
01 WS-COMMAREA PIC X(100).
PROCEDURE DIVISION.
EXEC CICS LINK
PROGRAM ('PROG2')
COMMAREA (WS-COMMAREA)
LENGTH (100)
END-EXEC.
Załaduj
Polecenie Load służy do ładowania programu lub tabeli. Poniżej znajduje się składnia polecenia Load -
EXEC CICS LOAD
PROGRAM ('name')
END-EXEC.
Wydanie
Polecenie Release służy do zwalniania programu lub tabeli. Poniżej znajduje się składnia polecenia Release -
EXEC CICS RELEASE
PROGRAM ('name')
END-EXEC.
Powrót
Polecenie Return służy do powrotu sterowania do następnego wyższego poziomu logicznego. Poniżej znajduje się składnia polecenia Return -
EXEC CICS RETURN
PROGRAM ('name')
COMMAREA (data-value)
LENGTH (data-value)
END-EXEC.
Operacje sterowania interwałami
Istnieją dwa rodzaje operacji kontroli interwałowej -
ASKTIME
ASKTIME służy do żądania aktualnego czasu i daty lub znacznika czasu. Następnie przenosimy tę wartość do roboczej zmiennej pamięci wewnątrz programu. Poniżej znajduje się składnia polecenia ASKTIME -
EXEC CICS ASKTIME
[ABSTIME(WS-TIMESTAMP)]
END-EXEC.
FORMATTIME
FORMATTIME formatuje znacznik czasu do wymaganego formatu na podstawie opcji, którymi może być RRRRD, RRMMDD lub RRDDMM dla daty. DATESEP wskazuje separator dla DATE, podobnie jak zmienna TIMESEP dla TIME. Poniżej znajduje się składnia polecenia FORMATTIME -
EXEC CICS FORMATTIME
ABSTIME(WS-TIMESTAMP)
[YYDDD(WS-DATE)]
[YYMMDD(WS-DATE)]
[YYDDMM(WS-DATE)]
[DATESEP(WS-DATE-SEP)]
[TIME(WS-TIME)]
[TIMESEP(WS-TIME-SEP)]
END-EXEC.
W programie CICS dostępne są różne notatniki do zapisywania danych lub przesyłania danych między transakcjami. Istnieje pięć obszarów przechowywania udostępnianych przez CICS, które będziemy omawiać w tym module.
COMMAREA
COMMAREA zachowuje się jak notatnik, którego można używać do przekazywania danych z jednego programu do innego programu, w ramach tej samej transakcji lub z różnych transakcji. Powinien być zdefiniowany w SEKCJI POŁĄCZENIA przy użyciu nazwy DFHCOMMAREA.
Wspólny obszar roboczy
Każda transakcja w regionie CICS może uzyskać dostęp do wspólnego obszaru roboczego, a zatem jej format i użycie musi być uzgodnione we wszystkich transakcjach w systemie, które zdecydują się na jej użycie. W całym regionie CICS istnieje tylko jeden CWA.
Obszar roboczy transakcji
Obszar roboczy transakcji służy do przekazywania danych między aplikacjami, które są wykonywane w ramach tej samej transakcji. TWA istnieje tylko na czas trwania transakcji. Jego rozmiar jest zdefiniowany w tabeli sterującej programem.
Tymczasowa kolejka magazynowa
Temporary Storage Queue (TSQ) to funkcja udostępniana przez program Temporary Storage Control Program (TSP).
TSQ to kolejka rekordów, które mogą być tworzone, odczytywane i usuwane przez różne zadania lub programy w tym samym regionie CICS.
Identyfikator kolejki służy do identyfikacji TSQ.
Rekord w TSQ jest identyfikowany przez względną pozycję znaną jako numer pozycji.
Rekordy w TSQ pozostają dostępne do momentu jawnego usunięcia całego TSQ.
Zapisy w TSQ można odczytywać sekwencyjnie lub bezpośrednio.
TSQ mogą być zapisywane w pamięci głównej lub pamięci dyskowej w DASD.
WRITEQ TS
To polecenie służy do dodawania elementów do istniejącego TSQ. Za pomocą tego polecenia możemy również utworzyć nowy TSQ. Poniżej znajduje się składnia polecenia WRITEQ TS -
Składnia
EXEC CICS WRITEQ TS
QUEUE ('queue-name')
FROM (queue-record)
[LENGTH (queue-record-length)]
[ITEM (item-number)]
[REWRITE]
[MAIN /AUXILIARY]
END-EXEC.
Poniżej przedstawiono szczegóły parametrów używanych w poleceniu WRITEQ TS -
KOLEJKA jest identyfikowana przez nazwę, która jest podana w tym parametrze.
Opcje FROM i LENGTH służą do określenia rekordu, który ma zostać zapisany w kolejce, oraz jego długości.
Jeśli określono opcję ITEM, CICS przypisuje numer pozycji do rekordu w kolejce i ustawia obszar danych dostarczony w tej opcji na numer pozycji. Jeśli rekord rozpoczyna nową kolejkę, przypisany numer pozycji to 1, a kolejne numery pozycji następują po kolei.
Opcja REWRITE służy do aktualizacji rekordu znajdującego się już w kolejce.
Opcja MAIN / AUXILIARY służy do przechowywania rekordów w pamięci głównej lub pomocniczej. Wartość domyślna to POMOCNICZE.
READQ TS
To polecenie służy do odczytu kolejki tymczasowego przechowywania. Poniżej znajduje się składnia READQ TS -
Składnia
EXEC CICS READQ TS
QUEUE ('queue-name')
INTO (queue-record)
[LENGTH (queue-record-length)]
[ITEM (item-number)]
[NEXT]
END-EXEC.
DELETEQ TS
To polecenie służy do usuwania kolejki tymczasowego przechowywania. Poniżej znajduje się składnia DELETEQ TS -
Składnia
EXEC CICS DELETEQ TS
QUEUE ('queue-name')
END-EXEC.
Przejściowa kolejka danych
Kolejka danych przejściowych ma charakter przejściowy, ponieważ można ją szybko utworzyć i usunąć. Pozwala tylko na dostęp sekwencyjny.
Zawartość kolejki można odczytać tylko raz, ponieważ zostanie ona zniszczona po wykonaniu odczytu, stąd nazwa Transient.
Nie można go zaktualizować.
Wymaga wpisu w DCT.
WRITEQ TD
To polecenie służy do zapisywania kolejek danych przejściowych i są one zawsze zapisywane do pliku. Poniżej znajduje się składnia polecenia WRITEQ TD -
Składnia
EXEC CICS WRITEQ TD
QUEUE ('queue-name')
FROM (queue-record)
[LENGTH (queue-record-length)]
END-EXEC.
READQ TD
To polecenie jest używane do odczytu kolejki danych przejściowych. Poniżej znajduje się składnia READQ TD -
Składnia
EXEC CICS READQ TD
QUEUE ('queue-name')
INTO (queue-record)
[LENGTH (queue-record-length)]
END-EXEC.
DELETEQ TD
To polecenie służy do usuwania kolejki danych przejściowych. Poniżej znajduje się składnia DELETEQ TD -
Składnia
EXEC CICS DELETEQ TD
QUEUE ('queue-name')
END-EXEC.
Wzajemna komunikacja między dwoma lub więcej systemami jest znana jako intercommunication.
Korzyści z komunikacji wewnętrznej
Najważniejsze korzyści z komunikacji wewnętrznej są następujące:
Nie musimy replikować danych we wszystkich systemach.
Użytkownicy nie muszą mieć połączeń z wieloma systemami, aby uzyskać dostęp do przechowywanych w nich danych.
Poprawia wydajność aplikacji.
Podstawowe terminologie
Należy posiadać znajomość podstawowych terminologii stosowanych w systemie CICS. Poniżej przedstawiono podstawowe terminy -
System lokalny
System lokalny to system, który inicjuje żądanie komunikacji wewnętrznej.
Zasób lokalny
Zasób lokalny to zasób znajdujący się w systemie lokalnym.
System zdalny
System zdalny to system, który jest inicjowany w wyniku żądania komunikacji wewnętrznej.
Zasoby zdalne
Zasób zdalny to zasób znajdujący się w systemie zdalnym.
MVS Sysplex
MVS Sysplex to konfiguracja wielu systemów operacyjnych MVS. Działają jako pojedynczy system, współdzieląc funkcje i programy.
CICSPlex
CICSPlex jest powszechnie opisywany jako zbiór połączonych ze sobą regionów CICS, które przetwarzają obciążenie klienta. CICSPlex to zestaw połączonych ze sobą regionów CICS, które są właścicielami terminali, aplikacji, zasobów itp.
Metody komunikacji wewnętrznej
Istnieją dwa sposoby komunikacji CICS z innymi systemami -
MRO - Praca w wielu regionach jest używana, gdy dwa regiony CICS w tym samym MVSPLEX muszą się ze sobą komunikować.
ISC - Komunikacja międzysystemowa jest używana, gdy region CICS na serwerze LOCAL musi komunikować się z regionem CICS na serwerze REMOTE.
Podczas pracy z CICS możesz napotkać błędy. Poniżej znajdują się typowe kody błędów wraz z ich opisami, które pomogą Ci rozwiązać problemy -
Sr.No | Kod i opis |
---|---|
1 | ASRA Wyjątek kontroli programu |
2 | AEI0 Błąd identyfikatora programu |
3 | AEI9 Warunek błędu mapy |
4 | AEIO Duplikat klucza |
5 | AEIN Duplikat rekordu |
6 | AEID Osiągnięto koniec pliku |
7 | AEIS Plik nie jest otwarty |
8 | AEIP Nieprawidłowy warunek żądania |
9 | AEY7 Brak uprawnień do korzystania z zasobu |
10 | APCT Nie znaleziono programu |
11 | AFCA Nie znaleziono zbioru danych |
12 | AKCT Błąd przekroczenia czasu |
13 | ABM0 Nie znaleziono określonej mapy |
14 | AICA Program w nieskończonej pętli |
15 | AAOW Wewnętrzny błąd logiczny |