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

结合使用 Application Server 与 MQ 群集

MQ 企业版支持多个互连代理实例(称为代理群集)。使用代理群集的情况下,客户机连接将分布在群集的所有代理中。群集可以提供水平可伸缩性并提高可用性。

本节介绍了如何配置 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使用 Application Server 群集启用 MQ 群集

  1. 如果尚不存在 Application Server 群集,请先创建一个。

    有关创建群集的信息,请参见创建群集

  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. 启动群集中的 Application Server 实例。

  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

    您还可以使用管理控制台执行等效操作。

故障排除

如果出现问题,请考虑以下操作: