JMS kapcsolatgyárak
A kapcsolatgyár egy olyan objektum, amelyet a JMS ügyfél (a JMS API-t használó JMS program) használ a kapcsolat létrehozásához a JNDI szolgáltatóval (egy üzenetkezelési szolgáltató, mint az IBM® MQ).
A IBM MQ Explorer segítségével létrehozhat kapcsolatgyárakat, és meghatározhatja a kapcsolat paramétereket, amelyeket a kapcsolatgyár használni fog a kapcsolat létrehozásához.
A kapcsolatgyárak (a célokhoz hasonlóan) adminisztrált objektumok, és egy JNDI névtérben vannak tárolva, amely egy meghatározott hely az elnevezési és címtár szolgáltatáson belül. A JNDI névtér gyökerét a kezdeti kontextus határozza meg. Az IBM MQ Explorer alkalmazásban minden kapcsolatgyár a megfelelő kontextus és alkontextusok Kapcsolatgyárak mappáiban vannak tárolva az alábbi ábrán látható módon.
Az ábrán a Kapcsolatgyár 1
elnevezésű kapcsolatgyár a Fájlrendszer kezdeti kontextus
elnevezésű kezdeti kontextus Kapcsolatgyárak mappájában van tárolva.
Kapcsolatgyár meghatározásakor ki kell választania a JMS szolgáltatóként használt üzenetkezelési szolgáltatót (például IBM MQ vagy Real-time); a kapcsolatgyár csak ehhez az üzenetkezelési szolgáltatóhoz tud kapcsolatokat létrehozni. Ahhoz, hogy a JMS ügyfél kapcsolatokat hozzon létre egy másik üzenetkezelési szolgáltatóval, létre kell hoznia egy új kapcsolatgyárat, és meg kell adni az üzenetkezelési szolgáltatót. A Valós idejű szállítás nem érhető el a IBM MQ 8.0 alkalmazásban. A IBM MQ 8.0 alkalmazás használata esetén meghatározhatja a Valós idejű szállítást, de az meghiúsul, amikor kísérlet történik a kapcsolat kialakítására.
Tartományfüggetlen kapcsolatgyárak
Kétféle üzenetkezelési tartomány létezik: a pont-pont üzenetkezelési tartomány és a közzététel/előfizetés üzenetkezelési tartomány. Létrehozhat egy kapcsolatgyárat úgy, hogy speciálisan a pont-pont üzenetkezeléshez hozzon létre kapcsolatokat (a QueueConnectionFactory felület használatával) vagy speciálisan a közzététel/előfizetés üzenetkezeléshez (a TopicConnectionFactory felület használatával). A JNDI létezése óta létrehozhat tartományfüggetlen kapcsolatgyárakat is, amelyek használhatóak pont-pont és közzététel/előfizetés üzenetkezeléshez is (a ConnectionFactory felület használatával). További információkért tekintse meg a Kapcsolatgyár létrehozása részt.
Ha a JMS alkalmazás csak pont-pont vagy csak közzététel/előfizetés üzenetkezelést szándékozik használni, akkor a kapcsolatgyár létrehozásakor kiválaszthatja a specifikus üzenetkezelési tartományt, és így egy tartomány-specifikus kapcsolatgyár kerül létrehozásra.
Ha azonban pont-pont és közzététel/előfizetés munkát is szeretne végrehajtani ugyanazon tranzakció alatt, akkor létrehozhat egy tartományfüggetlen kapcsolatgyárat. Elképzelhető például, hogy szeretné, ha a JMS alkalmazás előfizetne egy témakörre (közzétételi/feliratkozási üzenetkezelés), majd amikor a JMS alkalmazás fogad egy bizonyos üzenetet, akkor elküld egy másik üzenetet egy sornak (pont-pont üzenetkezelés). Nehéz megbízhatóan végrehajtani a pont-pont és közzétételi/előfizetési munkát ugyanazon tranzakció alatt, ha tartományspecifikus kapcsolatgyárakat használ: létre kell hoznia egy külön kapcsolatgyárat mindegyik üzenetkezelési tartományhoz, ami azt jelenti, hogy a pont-pont munka egy olyan tranzakció alatt lesz elvégezve, amelyet a QueueSession munkamenet irányít, és a közzétételi/előfizetési munka egy olyan tranzakció alatt lesz elvégezve, amelyet a TopicSession munkamenet irányít. Nehéz meggyőződni arról, hogy a küldési és fogadási műveletek megtörténtek-e, vagy hogy mindkettő visszavonásra került-e.
Ahelyett, hogy létrehozna egy tartomány-specifikus kapcsolatgyárat a pont-pont munkához és egy tartomány-specifikus kapcsolatgyárat a közzététel/előfizetés munkához, létrehozhat egyetlen tartományfüggetlen kapcsolatgyárat mindkettőhöz. Ez azt jelenti, hogy a kapcsolatgyár létrehoz egy kapcsolatot, amely létrehoz egy munkamenetet. A munkamenet létrehoz egy MessageConsumer-t a témakörből és egy MessageProducer-t a sorhoz. Amikor a JMS alkalmazás fogadja a közzétett üzenetet, a következő üzenetet el lehet küldeni a sorhoz ugyanazon munkamenet tranzakciója alatt; ezután mindkét művelet véglegesíthető vagy visszagörgethető egyetlen munkaegységként.
További információkért tekintse meg az IBM Knowledge Center IBM MQ JMS osztályok használata részét.