JMS Connection Factory

Connection Factory 是 JMS 用戶端(使用 JMS API 的 JMS 程式)的物件,用來建立與 JNDI 提供者(傳訊提供者,例如 IBM® MQ)的連線。

您可以使用「IBM MQ 探險家」來建立 Connection Factory,以及定義 Connection Factory 要用來建立連線的連線參數。

Connection Factory 就像目的地一樣,是受管理物件,並且儲存在 JNDI 名稱空間中,這是命名及目錄服務中的已定義位置。起始環境定義可定義 JNDI 名稱空間的根。在「IBM MQ 探險家」中,所有 Connection Factory 都會儲存在適當環境定義及子環境定義的 Connection Factory 資料夾中,如下圖所示。

在此圖中,稱為 Connection Factory 1 的 Connection Factory,儲存在稱為檔案系統起始環境定義的起始環境定義的 Connection Factory 資料夾中。

Connection Factories 資料夾中的 Connection Factory 的畫面擷取。

定義 Connection Factory 時,會選取要用作 JMS 提供者的傳訊提供者(例如,IBM MQ 或「即時」);Connection Factory 只會建立與該傳訊提供者的連線。若要讓 JMS 用戶端能夠建立與不同傳訊提供者的連線,您必須建立新的 Connection Factory,並指定該傳訊提供者。在 IBM MQ 8.0 版中無法使用「即時」傳輸。如果您是使用 IBM MQ 8.0 版,雖然可以定義「即時」傳輸,但在嘗試建立連線時,它會失敗。

不關聯於特定網域的 Connection Factory

有兩種傳訊網域:點對點傳訊網域和發佈/訂閱傳訊網域。您可以建立一個 Connection Factory 來特別針對點對點傳訊(使用 QueueConnectionFactory 介面)或特別針對發佈/訂閱傳訊(使用 TopicConnectionFactory 介面)建立連線。從 JNDI 開始,您還可以建立不關聯於特定網域的 Connection Factory,因此可用於點對點和發佈/訂閱傳訊(使用 ConnectionFactory 介面)。如需相關資訊,請參閱建立 Connection Factory

如果 JMS 應用程式只能使用點對點傳訊或發佈/訂閱傳訊,當您建立 Connection Factory 時可選取特定的傳訊網域,這樣就會建立網域專用的 Connection Factory。

不過,如果您想要在相同交易之下同時執行點對點和發佈/訂閱工作,可建立不關聯於特定網域的 Connection Factory。例如,您想要 JMS 應用程式訂閱至某主題(發佈/訂閱傳訊),當 JMS 應用程式接收特定訊息時,它會傳送另一則訊息至佇列(點對點傳訊)。如果您使用網域專用 Connection Factory,則很難在相同交易中同時可靠地執行點對點及發佈/訂閱工作:您必須為每個傳訊網域建立個別的 Connection Factory,這表示點對點工作會在 QueueSession 階段作業所控制的交易中執行,而發佈/訂閱工作會在 TopicSession 階段作業所控制的交易中執行。要確定已發生或已取消傳送和接收動作很困難。

不必為點對點工作建立一個特定網域的 Connection Factory,以及為發佈/訂閱工作建立一個特定網域的 Connection Factory,您可以為兩者建立不關聯於特定網域的單一 Connection Factory。這表示 Connection Factory 會建立一條連線,從而建立一個階段作業。此階段作業從主題建立 MessageConsumer,並建立一個 MessageProducer 到佇列中。當 JMS 應用程式接收已發佈的訊息時,下一個訊息可在相同的階段作業交易之下傳送給該佇列;然後可當成單一工作單位來確定或回復這兩項作業。

如需相關資訊,請參閱 IBM MQ 線上產品說明文件中的使用 IBM MQ classes for JMS


概念 概念

反饋

「時間戳記」圖示 前次更新時間: Wednesday, 14 February 2018
http://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.explorer.doc/com.ibm.mq.explorer.doc/j_connection_factory.htm