CICS - tymczasowe przechowywanie
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 określony 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 znajdują się szczegóły parametrów używanych w poleceniu WRITEQ TS -
KOLEJKA jest identyfikowana przez nazwę podaną 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 już obecnego w kolejce.
Opcja GŁÓWNA / POMOCNICZA służy do przechowywania rekordów w pamięci głównej lub dyskowej. 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.