部署訊息驅動 Bean 以連接至 IBM MQ

您可以使用 訊息驅動 Bean (MDB),來連接至 IBM MQ

程序

  1. 配置 MDB 特性:

    請在 server.xml 檔中配置 jmsMdb-3.2wmqJmsClient-2.0 特性,以便在 Liberty 伺服器中啟用 MDB 支援。如果您要執行 JNDI 查閱,也必須新增 jndi-1.0 特性與其他兩個特性。

    <featureManager>
         <feature>jmsMdb-3.2</feature>
         <feature>wmqJmsClient-2.0</feature>
         <feature>jndi-1.0</feature>
    </featureManager>

    配置 wmqJmsClient-2.0 特性可讓使用者定義所需的 JMS 資源,並使 MDB 能夠與傳訊引擎互動。

    註: wmqJmsClient-2.0 特性同時支援 JMS 1.1 和 JMS 2.0 規格的特性。不過,如果您只想使用符合 JMS 1.1 規格標準的特性,可以選擇使用 wmqJmsClient-1.1 特性。
  2. 將下列項目新增到 server.xml 檔,來指定「IBM MQ 資源配接器」的位置:
    <variable name="wmqJmsClient.rar.location" value="/path/to/wmq/rar/wmq.jmsra.rar"/>
    其中 value 屬性指定「IBM MQ 資源配接器」檔 wmq.jmsra.rar 的絕對路徑。

    如需支援的版本和取得 wmq.jmsra.rar 檔的詳細資料,請參閱 IBM MQ Technote 1633761。 請從修正程式中心取得 wmq.jmsra.rar 檔,並且安裝它。

  3. 配置 JCA 啟動規格以使用 JMS 資源配接器,使 MDB 用來作為特定 JMS 目的地上的接聽器。您可以利用下列不同的方式來配置 MDB 與傳訊引擎互動。
    1. 使用啟動規格內容來配置 MDB。
      您可以在 server.xml 檔中定義此內容,使 MDB 能夠利用這個內容在特定 JMS 目的地上進行接聽。
      <jmsActivationSpec id="JMSSample/JMSSampleMDB">
           <properties.wmqJms destinationRef="jndi/MDBQ" transportType="CLIENT" queueManager="myQM" hostName="myHost" port="1414"/>
      </jmsActivationSpec>
      
      <jmsQueue id="jndi/MDBQ" jndiName="jndi/MDBQ">
           <properties.wmqJms baseQueueName="MYQ" baseQueueManagerName="myQM"/>
      </jmsQueue>

      <destinationRef> 參照 <jmsQueue> ID。 如果未提及 <jmsQueue> 中的 ID,<destinationRef> 必須指向 <jmsQueue> 的 <jndiName>。

      註: ID 值的格式必須是 application name/module name/bean name,其中
      • application name 是所部署的應用程式名稱(例如 JMSSample)。 只有在 Bean 是包裝在 EAR 檔內時,才適用這個應用程式名稱。 應用程式預設為 EAR 檔的基本名稱,除非 application.xml 部署描述子有所指定,否則不含副檔名。
      • module name 是包裝 Bean 的模組名稱。 在獨立式 ejb-jar 檔或 WAR 檔中,<module-name> 預設為移除了任何副檔名的模組基本名稱。在 EAR 檔中,<module-name> 預設為模組路徑名稱,移除了任何副檔名,但包含任何目錄名稱。 您可以利用 ejb-jar.xml(適用於 ejb-jar 檔)或 web.xml(適用於 WAR 檔)的 module-name 元素來置換預設的 <module-name>。
      • bean name 是 Enterprise Bean 的 ejb-name。 如果是透過註釋來定義的 Enterprise Bean,除非在 MessageDriven 註釋 name() 屬性內容中加以指定,否則 Bean 名稱的預設值為 Session Bean 類別的非限定名稱。如果是透過 ejb-jar.xml 來定義的 Enterprise Bean,它是指定在 <ejb-name> 部署描述子元素中。
    2. 連同 server.xml 檔中所定義的啟動規格內容來使用註釋。

      針對可搭配 server.xml 檔中所定義的啟動規格內容來使用的 MDB,Liberty 支援定義其註釋。如果要使用註釋,請先依照上一步所述來定義啟動規格內容。 對於每個 MDB,使用者可以依照下列範例所示來定義註釋:

      @MessageDriven(
      		  		  name = "JMSSampleMDB",
      		  		  activationConfig = {
      		    		    @ActivationConfigProperty(propertyName  = "destinationType",
      		                              		                              propertyValue = "javax.jms.Queue"),
      		    		    @ActivationConfigProperty(propertyName  = "userName",
      		                              		                              propertyValue = "user1"),
      		    		    @ActivationConfigProperty(propertyName  = "password",
      		                              		                              propertyValue = "user1pwd"),	
      		    		    @ActivationConfigProperty(propertyName  = "destination",
      		                              		                              propertyValue = "jndi_INPUT_Q")
      		  }
      		)
      public class JMSSampleMDB implements MessageListener{
      	
      	 	 @TransactionAttribute(value = TransactionAttributeType.REQUIRED)
      	  	  public void onMessage(Message message) {
      	 }
      }
    3. 使用 EJB 連結檔 (ibm-ejb-jar-bnd.xml)。

      您也可以利用這個連結檔來定義 MDB 連接到傳訊引擎所需要的資源資訊。 當您使用 EJB 連結檔時,啟動規格內容 ID 不需要如步驟 1 所述,採用 application name/module name/bean name 格式。

      server.xml 中新增啟動規格內容資訊。
      <jmsActivationSpec id="PriceChangeAS">
           <properties.wmqJms destinationRef="jms/TriggerQ" transportType="CLIENT" queueManager="myQM" hostName="myHost" port="1414"/>
      </jmsActivationSpec>
      
      <jmsQueue id="jms/TriggerQ" jndiName="jms/TriggerQ">
           <properties.wmqJms baseQueueName="Q1"/>
       </jmsQueue>
      ibm-ejb-jar-bnd.xml 檔中新增下列 MDB 連結資訊。
      <ejb-jar-bnd
              xmlns="http://websphere.ibm.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_1.xsd"
      		(http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_1.xsd%27) version="1.1">
          
      		<message-driven name="PriceChangeMDBBean">
              		<jca-adapter activation-spec-binding-name="PriceChangeAS" destination-binding-name="jms/TriggerQ" />
         		</message-driven>
      </ejb-jar-bnd>
      註: 使用 EJB 連結檔時,ibm-ejb-jar-bnd.xml 檔中的 activation-spec-binding-name 屬性必須指向 server.xml 檔中指定的啟動規格內容 ID 值。

指示主題類型的圖示 作業主題



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_dep_msg_mdbwmq
檔名:twlp_dep_msg_mdbwmq.html