Tablica definicji kanałów klienckich (client channel definition table)

Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200

Tablica definicji kanałów klienckich jest to specjalna lista kanałów tworzonych po stronie serwera i która następnie może być wykorzystywana przy połączeniach klienckich. Każda pozycja w tej tabeli opisuje informacje o połączeniu takie jak nazwa menadżera, typ połączenia (np. TCP) oraz informacje sieciowe (dla TCP będzie to serwer oraz numer portu). Tablica taka może być wykorzystywana w celu zapewnienia wysokiej dostępności systemu. Jest ona w aplikacji przekazywana jako parametr podczas połączenia. Zaleta tego rozwiązania jest to, ze definicje połączenia mamy zapisaną w zewnętrznym zasobie, a w aplikacji podajemy tylko i wyłącznie nazwę menadżera. W przypadku, kiedy będziemy chcieli zapewnić wysoką dostępność w tablicy definicji pod jedna nazwa menadżera zdefiniujemy więcej fizycznych menadżerów, np. Dla menadżera QM1 podamy jego dwie fizyczne lokalizacje, serwer1 nasłuchujący na porcie 1414 oraz serwer2 nasłuchujący na porcie 1415. Konfiguracja taka oznacza, że jeśli klient będzie chciał połączyć się z menadżerem QM1 to zostanie połączony z menadżerem na serwerze, którego definicja jako pierwsza pojawi się w tabeli definicji kanałów. Jeśli z kolei ten menadżer występujący jako pierwszy będzie niedostępny klient będzie próbował połączyć się z kolejnym aż do momentu, kiedy w tabeli definicji kanałów nie będzie juz pozycji związanej z daną nazwą menadżera, a każda wcześniejsza próba zakończyła się niepowodzeniem.

Tworzenie i instalacja tabeli definicji kanałów

Tworzenie tabeli definicji kanałów polega na podłączeniu się do dowolnego menadżera za pomocą komendy runmqsc a następnie na stworzeniu poszczególnych definicji poleceniem tworzącym definicje kanału klienckiego np.:

Def chl(nazwa) ... Trtype(TCP) conname ("serwr1(1414)") qmname (QM1)

Po stworzeniu calej tabeli definicji kanałów lista ta przechowywana jest po stronie serwera w postaci binarnej w pliku : {katalog_instalacyjny}/qmgrs/nazwa_menadżera/@ipcc/AMQCLCHL.TAB . Plik ten powinien zostać rozdystrybulowany na stacje, do których mają dostęp aplikacje klienckie poprzez odczyt z własnego systemu plikowego lub na przykład poprzez FTP z innego serwera. Aby móc wykorzystać taki plik z tabela definicji kanałów musimy wykorzystać inny konstruktor podczas łączenia się z menadżerem. Kod, w którym wykorzystujemy to rozwiązanie może mieć on postać:

URL chltab= new URL("ftp://serwer/chltab/AMQCLCHL.TAB");


MQQueueManager qmgr= new MQQueueManager("nazwa_menadżera",chltab);

powrót
Zachęcam do przedstawienia swoich uwag i opinii w polu komentarzy.

Komentarze

Dodaj Komentarz