Následující příklad předpokládá již hotovou instalaci WMQ a je zaměřen na komunikaci dvou instancí WMQ - jedna je na lokálním a jedna na vzdáleném prostředí. Pro vyzkoušení, nebo prezentaci je možné použít i jenom jedinou, lokální instanci. Nejdřív si na úvod definujeme základní komponenty, které bude potřeba vytvořit, a které spolu budou komunikovat:
Queue Manager
Správce front vlastní a spravuje fronty, kanály a další objekty. Je to první WMQ objekt, který je nutné na čisté instalaci vytvořit. Správce umožňuje další objekty vytvářet, konfigurovat, spouštět, vypínat atd. Pro přístup k frontám a zprávám poskytuje queue manager dvě rozhraní (API):
- Message Queue Interface (MQI) - proprietární rozhraní umožňující kompletní přístup k WMQ.
- Java Message Service (JMS) - Java specifikace pro asynchronní messaging.
Queue
Datová struktura pro ukládání zpráv. V našem příkladu budeme používat čtyři typy front:
- Local queue - lokální fronta pro ukládání zpráv.
- Remote queue - definice fronty, která je vlastněná jiným queue managerem.
- Transmission queue - (lokální fronta,) dočasné úložiště zpráv určených pro vzdáleného queue managera.
- Dead-letter queue - lokální fronta určená pro nedoručitelné zprávy.
Message Channel
Poskytuje jednosměrnou komunikační cestu pro přenos zpráv z jednoho queue manageru na druhý. Skládá se ze tří částí:
- odesílající Message Channel Agent (MCA),
- přijímající MCA,
- komunikační spojení.
Na odesílajícím konci je vyžadována transmission queue.
Architektura vzdáleného posílání zpráv
Barevně jsou vyznačeny nově vytvářené objekty. V případě, že existuje pouze jedna (lokální) instance WMQ, je možné oba queue managery vytvořit lokálně. Obecný postup vytvoření objektů je následující:- Vytvoření queue managera.
- Vytvoření dead-letter queue.
- Vytvoření local (remote) queue.
- Vytvoření transmission queue.
- Vytvoření message channelu.
- (Spuštění sender message channelu.)
Jelikož nejde o tutoriál, nebudu popisovat vytvoření jednotlivých objektů - to je dobře popsáno v dokumentaci. Pouze bych zde zmínil, že všechny uvedené objekty lze vytvořit dvěma způsoby - buď pomocí grafického rozhraní MQ Explorer (velice snadné), nebo pomocí MQ Script Commands (MQSC).
Výsledná architektura vypadá takto:
V uvedeném příkladu se zprávy vkládají do fronty SENDER a jsou přenášeno do fronty RECEIVER. Testovací zprávy je možné jednoduše do front vkládat, procházet a mazat pomocí již zmiňovaného MQ Exploreru (opět viz dokumentace). Pokud chcete zaměstnat i dead-letter queue, vložte zprávu do transmission queue QM_JPRASE, objeví se ve frontě DLQ na správci QM_REMOTE (transmission queue vyžaduje speciální hlavičku, která při běžném vložení zprávy do fronty není vyplněná).
Smysl to začíná dávat v momentě, pokud potřebuje komunikovat více queue managarů, např. z důvodů high availability, škálovatelnosti apod.
Žádné komentáře:
Okomentovat
Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.