Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性管理指南

將 MQ 叢集與應用程式伺服器配合使用

MQ Enterprise Edition 支援多個互連的代理程式實例 (稱為代理程式叢集)。對於代理程式叢集,用戶端連線會分散至叢集中的所有代理程式。叢集可提供水平可延伸性並可提高可用性。

本小節說明如何配置 Application Server 以使用具有高可用性的 Sun Java System Message Queue 叢集。其中說明了如何啟動與配置 Message Queue 叢集。

如需有關 Application Server 拓樸和 MQ 部署的更多資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide」中的「Planning Message Queue Broker Deployment」

Procedure啟用 MQ 叢集與應用程式伺服器叢集

  1. 如果其中之一尚不存在,則建立應用程式伺服器叢集。

    如需有關建立叢集的資訊,請參閱建立叢集

  2. 建立 MQ 代理程式叢集。

    首先,刪除參照由網域管理伺服器啟動的代理程式的預設 JMS 主機,然後,建立三個要包含在 MQ 代理程式叢集中的外部代理程式 (JMS 主機)。

    使用管理主控台或 asadmin 指令行公用程式建立 JMS 主機。

    若要使用 asadmin,請參照以下的指令範例︰


    asadmin delete-jms-host --target cluster1 default_JMS_host
    asadmin create-jms-host --target cluster1
         --mqhost myhost1 --mqport 6769
         --mquser admin --mqpassword admin broker1
    asadmin create-jms-host --target cluster1
         --mqhost myhost2 --mqport 6770
         --mquser admin --mqpassword admin broker2
    asadmin create-jms-host --target cluster1
         --mqhost myhost3 --mqport 6771
         --mquser admin --mqpassword admin broker3

    若要使用管理主控台建立主機,請執行以下步驟︰

    1. 導覽至 [JMS 主機] 節點 ([配置] > [config-name] > [Java 訊息服務] > [JMS 主機])。

    2. 刪除預設代理程式 (default_JMS_host)。

      選取該代理程式旁邊的核取方塊,然後按一下 [刪除]。

    3. 按一下 [新建] 以建立每個 JMS 主機並輸入其特性值。

      填入主機名稱、DNS 名稱或 IP 位址、連接埠號碼、管理使用者名稱和密碼的值。

  3. 啟動主 MQ 代理程式和其他 MQ 代理程式。

    除了在 JMS 主機電腦上啟動三個外部代理程式以外,在任一機器上啟動一個主代理程式。此主代理程式不必為代理程式叢集的一部分。例如︰


    /usr/bin/imqbrokerd -tty -name brokerm -port 6772
     -cluster myhost1:6769,myhost2:6770,myhost2:6772,myhost3:6771
     -D"imq.cluster.masterbroker=myhost2:6772"
  4. 啟動該叢集中的應用程式伺服器實例。

  5. 在叢集上建立 JMS 資源︰

    1. 建立 JMS 實體目標。

      例如,使用 asadmin


      asadmin create-jmsdest --desttype queue --target cluster1 MyQueue
      asadmin create-jmsdest --desttype queue --target cluster1 MyQueue1

      若要使用管理主控台,請執行以下步驟︰

      1. 導覽至 [JMS 主機] 頁面 ([配置] > [config-name] > [Java 訊息服務] > [實體目標])。

      2. 按一下 [新建] 以建立每個 JMS 實體目標。

      3. 對於每個目標,輸入其名稱和類型 (佇列)。

    2. 建立 JMS 連線工廠。

      例如,使用 asadmin


      asadmin create-jms-resource --target cluster1
      --restype javax.jms.QueueConnectionFactory jms/MyQcf
      asadmin create-jms-resource --target cluster1
      --restype javax.jms.QueueConnectionFactory jms/MyQcf1

      若要使用管理主控台,請執行以下步驟︰

      1. 導覽至 [JMS 連線工廠] 頁面 ([資源] > [JMS 資源] > [連線工廠])。

      2. 若要建立每個連線工廠,按一下 [新建]。

        將開啟 [建立 JMS 連線工廠] 頁面。

      3. 對於每個連線工廠,輸入 JNDI 名稱 (例如 jms/MyQcf) 和類型 javax.jms.QueueConnectionFactory

      4. 從該頁面底部可用目標的清單中選取叢集,然後按一下 [增加]。

      5. 按一下 [確定] 以建立連線工廠。

    3. 建立 JMS 目標資源。

      例如,使用 asadmin


      asadmin create-jms-resource --target cluster1
           --restype javax.jms.Queue
           --property imqDestinationName=MyQueue jms/MyQueue
      asadmin create-jms-resource --target cluster1
           --restype javax.jms.Queue
           --property imqDestinationName=MyQueue1 jms/MyQueue1

      若要使用管理主控台,請執行以下步驟︰

      1. 導覽至 [JMS 目標資源] 頁面 ([資源] > [JMS 資源] > [連線工廠])。

      2. 若要建立每個目標資源,按一下 [新建]。

        將開啟 [建立 JMS 目標資源] 頁面。

      3. 對於每個目標資源,輸入 JNDI 名稱 (例如 jms/MyQueue) 和類型 javax.jms.Queue

      4. 從該頁面底部可用目標的清單中選取叢集,然後按一下 [增加]。

      5. 按一下 [確定] 以建立目標資源。

  6. 使用 –retrieve 選項為應用程式用戶端部署應用程式。例如︰


    asadmin deploy --target cluster1 
    --retrieve /opt/work/MQapp/mdb-simple3.ear
  7. 存取應用程式並對其進行測試,以確保其正常運作。

  8. 若要將 Application Server 復原為其預設 JMS 配置,請刪除您建立的 JMS 主機,然後重新建立預設。例如︰


    asadmin delete-jms-host --target cluster1 broker1
    asadmin delete-jms-host --target cluster1 broker2
    asadmin delete-jms-host --target cluster1 broker3
    asadmin create-jms-host --target cluster1
     --mqhost myhost1 --mqport 7676
     --mquser admin --mqpassword admin
     default_JMS_host

    您也可使用管理主控台執行等效作業。

疑難排解

如果遇到問題,請考量以下作業︰