Spis treści
Kolejki MQ
Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200
Rozróżniamy następujące typy kolejek:
Kolejka lokalna
Jak sama nazwa wskazuje jest to standardowa kolejka znajdująca się lokalnie na menadżerze. Aplikacja podłączona do danego menadżera może do takiej kolejki czytać i pisać. Komenda tworząca taką kolejkę może mieć postać:
DEFINE QLOCAL(QUEUE.IN)
Kolejka zdalna
Kolejka ta określa lokalny wskaźnik do kolejki znajdującej się na innym "zdalnym" menadżerze kolejek. Pozwala ona na stworzenie na menadżerze obiektu wskazującego na inną kolejkę na zdalnym menadżerze. Do takiej kolejki można tylko zapisywać. Jako, że fizycznie kolejka ta znajduje się na innym menadżerze odczyt z niej jest niemożliwy. Po wrzuceniu komunikatu do takiej kolejki jest on przenoszony do kolejki transmisyjnej z nią związaną a następnie poprzez proces MCA i związaną z daną kolejką transmisyjna parą kanałów jest on przenoszony na kolejkę docelową na zdalnym menadżerze. Komenda tworząca taką kolejkę może mieć postać:
DEFINE QREMOTE(QUEUE.OUT) RNAME(QUEUE.IN) RQMNAME(QM2) XMITQ(QM2_TRANS)
gdzie:
- QUEUE.OUTnazwa kolejki zdalnej
- QUEUE.INnazwa kolejki docelowej znajdującej się na zdalnym menadżerze
- QM2nazwa zdalnego menadżera kolejek
- QM2_TRANSnazwa kolejki transmisyjnej
Kolejka aliasowa
Kolejka modelowa
Kolejka dynamiczna
Kolejka dynamiczna jest to specjalna kolejka, która jest tworzona dynamicznie przez aplikacje. Rozróżniamy kolejki dynamiczne tymczasowe i trwałe. Kolejka tymczasowa jest usuwana zaraz po zakończeniu aplikacji i odłączeniu się od menadżera kolejek. Kolejka trwała przetrwa zakończenie aplikacji. To czy stworzona kolejka dynamiczna będzie trwała, czy nie zależy od parametru DEFTYPE kolejki modelowej na podstawie której stworzona zostanie kolejka dynamiczna. Parametr ten może przyjmować następujące wartości:
- PERMDYNTworzona kolejka dynamiczna będzie trwała
- TEMPDYNTworzona kolejka dynamiczna będzie tymczasowa
Przykładowy kod:
String dynamicQueueName="dynam*"; String myQueueManagerName="QM1"; int myOpenOptions=MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING; qMgr= new MQQueueManager (myQueueManagerName); MQQueue dynamicQueue=qMgr.accessQueue( "SYSTEM.DEFAULT.MODEL.QUEUE", myOpenOptions,myQueueManagerName,dynamicQueueName,null); ... mqmessage.replyToQueueName=dynamicQueue.name;
Kolejka klastrowa
Kolejka transmisyjna
Kolejka inicjalizacyjna
powrótKomentarze
Dodaj Komentarz
Newsletter
Jeżeli chcesz być na bieżąco informowany o aktualnościach i poradach IT zapisz się do naszego newslettera.