| Tablica definicji kanałów klienckich (client channel definition table) |
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
|