Spis treści
Połączenie do menadżera komunikatów
Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200
Połączenie serwerowe
Za połączenie serwerowe uznajemy takie połączenie, w którym aplikacja podłączająca się do menadżera kolejek znajduje się na tym sąmym serwerze. W takim przypadku połączenie odbywa się lokalnie nie poprzez protokoły sieciowe, tylko poprzez dedykowaną pamięć dzielona. W celu podłączenia się do lokalnego menadżera kolejek należy utworzyć obiekt MQQueueManager .
MQQueueManager qmgr= new MQQueueManager("nazwa_menadżera");
Połączenie Klienckie
W przypadku połączeń klienckich mamy do czynienia z połączeniem aplikacji z menadżerem poprzez protokoły sieciowe (TCP/IP lub inne) w związku, z czym podczas połączenia poza nazwą menadżera musimy podać dodatkowe informacje. Te dodatkowe informacje to:
- Nazwa maszyny, na której stoi menadżer
- Nazwa kanału, poprzez który ma nastąpić połączenie oraz port, na którym uruchomiony jest proces nasłuchujący (listener).
Konfiguracji takiego połączenia można dokonać na dwa sposoby. Pierwszy z nich to poprzez klasę MQEnvironment .
MQEnvironment.hostname="nazwa_serwera"; MQEnvironment.port=1414; MQEnvironment.channel="nazwa_kanalu"; MQQueueManager qmgr= new MQQueueManager("nazwa_menadżera");
W tym przypadku w zmiennych statycznych klasy MQEnvironment umieściliśmy informacje o położeniu menadżera, a jego nazwę podaliśmy identycznie, jak to ma miejsce w przypadku połączenia serwerowego. Wadą tego rozwiązania jest to, ze w przypadku, kiedy w aplikacji łączymy się do więcej niż jednego menadżera to możemy mieć kłopoty z taką aplikacją ze względu na to, ze informacje o połączeniu zapisąne są w zmiennych statycznych, wiec współdzielonych w ramach aplikacji. Rozwiązaniem tego problemu jest drugi sposób połączenia, w którym informacje o połączeniu podawane są jako kolejny parametr w konstruktorze klasy MQQueueManager.
Hashtable conn= new Hashtable(); conn.add(MQC.HOST_NAME_PROPERTY,"nazwa_serwera"); conn.add(MQC.PORT_PROPERTY,1414); conn.add(MQC.CHANNEL_PROPERTY,nazwa_kanalu); MQQueueManager qmgr= new MQQueueManager("nazwa_menadżera",conn); powrót
Komentarze
Dodaj Komentarz
Newsletter
Jeżeli chcesz być na bieżąco informowany o aktualnościach i poradach IT zapisz się do naszego newslettera.