C/C++ / CGI / Sieć Novell / PHP / Java / SQL / Oracle / WebSphere MQ / WebSphere Message Broker / JavaScript / Humor / IT Quiz

Połączenie do menadżera komunikatów

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


  Autorem serwisu jest Marcin Kasiński
Wszelkie prawa zastrzeżone. All rights reserved.
powered by technology... linux eclipse java php