Fabryki połączeń usługi JMS

Fabryka połączeń to obiekt używany przez klient JMS (program JMS korzystający z interfejsu API JMS) do tworzenia połączenia z dostawcą JNDI (dostawcą komunikatów, takim jak produkt IBM® MQ).

Do tworzenia fabryk połączeń oraz do definiowania parametrów połączeń, które będą używane przez fabrykę połączeń podczas tworzenia połączeń, można użyć programu IBM MQ Explorer.

Fabryki połączeń, podobnie jak miejsca docelowe są obiektami administrowanymi i są składowane w przestrzeni nazw JNDI, będącej zdefiniowanym miejscem w usłudze nazewnictwa i usłudze katalogowej. Użytkownik root przestrzeni nazw JNDI jest zdefiniowany przez kontekst początkowy. W programie IBM MQ Explorer wszystkie fabryki połączeń są składowane w folderach fabryk połączeń w odpowiednim kontekście i podkontekstach, co zostało pokazane na poniższym rysunku.

Na rysunku fabryka połączeń o nazwie Fabryka połączeń 1 jest składowana w folderze Fabryki połączeń kontekstu początkowego o nazwie Kontekst początkowy systemu plików.

Zrzut ekranu fabryki połączeń w folderze fabryki połączeń.

Podczas definiowania fabryki połączeń wybierany jest dostawca komunikatów, który jest używany jako dostawca JMS (na przykład produkt IBM MQ lub dostawca czasu rzeczywistego). Połączenia mogą być tworzone przez fabrykę połączeń tylko dla tego dostawcy komunikatów. Aby klient JMS mógł utworzyć połączenia do innego dostawcy komunikatów, należy utworzyć nową fabrykę połączeń i określić dostawcę komunikatów. Transport w czasie rzeczywistym jest niedostępny w produkcie IBM MQ 8.0. W przypadku używania produktu IBM MQ 8.0 można zdefiniować transport w czasie rzeczywistym, jednak jego działanie zostanie zakończone niepowodzeniem podczas próby utworzenia połączenia.

Fabryki połączeń zależne od domeny.

Istnieją dwie domeny komunikatów: domena komunikatów typu punkt z punktem i domena komunikatów publikacji/subskrypcji. Użytkownik może utworzyć fabrykę połączeń w celu tworzenia połączeń specjalnie dla przesyłania komunikatów typu punkt z punktem (za pomocą interfejsu Fabryki_połączeń_kolejek) lub przesyłania komunikatów typu publikacja/subskrypcja (za pomocą interfejsu Fabryki_połączeń_sekcji). Począwszy od wersji JNDI, użytkownik może tworzyć fabryki połączeń niezależne od domeny, więc mogą być one używane zarówno do przesyłania komunikatów wg wzorca Punkt z punktem, jak i wg wzorca Publikowanie/subskrybowanie (za pomocą interfejsu ConnectionFactory). Więcej informacji można znaleźć w sekcji Tworzenie fabryki połączeń.

Jeśli aplikacja JMS ma być używana tylko do przesyłania komunikatów typu punkt z punktem lub tylko przesyłania komunikatów publikacji/subskrypcji, użytkownik może wybrać określoną domenę przesyłania komunikatów podczas tworzenia fabryki połączeń i fabryka połączeń określonej domeny zostanie utworzona.

Jeśli jednak dla tej samej transakcji ma być wykonywane działanie zarówno typu punkt z punktem, jak i typu publikacji/subskrypcji, użytkownik może utworzyć fabrykę połączeń niezależnych od domeny. Na przykład użytkownik może chcieć, aby sekcja była subskrybowana przez aplikację JMS (wysyłanie komunikatów publikacji/subskrypcji), a następnie po odebraniu określonego komunikatu przez aplikację JMS inny komunikat jest wysyłany do kolejki (wysyłanie komunikatów punkt z punktem). Trudno jest w sposób wiarygodny wykonywać działania typu punkt z punktem oraz publikowanie/subskrypcja w ramach tej samej transakcji, jeśli używane są fabryki połączeń specyficzne dla domeny. Użytkownik musi utworzyć oddzielną fabrykę połączeń dla każdej domeny przesyłania komunikatów, co oznacza, że działania typu punkt z punktem są wykonywane w ramach transakcji sterowanej przez sesję kolejki, a działania typu publikowanie/subskrypcja są wykonywane w ramach transakcji sterowanej przez sesję tematu. Trudno jest zagwarantować, że działania wysyłania i odbierania albo zaistnieją razem, albo razem zostaną wycofane.

Zamiast tworzyć jedną fabrykę połączeń określoną dla domeny dla działań typu punkt z punktem i jedną fabrykę połączeń określoną dla domeny dla działań typu publikacja/subskrypcja, można utworzyć pojedynczą niezależną od domeny fabrykę połączeń dla obu typów działań. Oznacza to, że fabryka połączeń tworzy jedno połączenie, które tworzy jedną sesję. W sesji tworzony jest Konsument_komunikatu z sekcji i Producent_komunikatu dla kolejki. Po otrzymaniu przez aplikację JMS publikowanego komunikatu w tej samej transakcji można przesłać do kolejki następny komunikat, a obie operacje mogą być następnie zatwierdzone lub wycofane jako pojedyncza jednostka pracy.

Więcej informacji zawiera sekcja Używanie produktu IBM MQ classes for JMS w Centrum Wiedzy IBM.