Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性 (HA) 管理ガイド

- Previous: 接続プールとフェイルオーバー
- Next: 第 10 章 RMI-IIOP 負荷分散とフェイルオーバー

# MQ クラスタと Application Server の併用

MQ Enterprise Edition は、ブローカクラスタと呼ばれる、相互に接続した複数のブローカインスタンスをサポートします。ブローカクラスタによって、クライアント接続はクラスタ内のすべてのブローカに分散されます。クラスタ化することで、水平方向のスケーラビリティーが提供され、可用性が向上します。

この節では、高可用性を備えた Sun Java System Message Queue クラスタを使用するために Application Server を設定する方法を説明します。また、Message Queue クラスタを開始および設定する方法も解説します。

Application Server および MQ 配備のトポロジの詳細については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide』の「Planning Message Queue Broker Deployment」を参照してください。

## Application Server クラスタで MQ クラスタを使用可能にするには

1. Application Server クラスタを作成します (まだクラスタがない場合)。

   クラスタの作成については、「クラスタを作成するには」を参照してください。

2. MQ ブローカクラスタを作成します。

   まず、ドメイン管理サーバーによって起動されるブローカを参照するデフォルト JMS ホストを削除してから、MQ ブローカクラスタに 3 つの外部ブローカ (JMS ホスト) を作成します。

   JMS ホストの作成は、管理コンソールまたは `asadmin` コマンド行ユーティリティーのいずれかを使用して行います。

   `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 ホストマシン上で起動する 3 つの外部ブローカに加えて、任意のマシン上で 1 つのマスターブローカを起動します。このマスターブローカは、ブローカクラスタの一部である必要はありません。次に例を示します。

       /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

   管理コンソールを使用して、これに相当する操作を実行することもできます。

##### 注意事項

問題が起きた場合は、次の点を考慮してください。

- Application Server ログファイルを表示します。MQ ブローカがメッセージに応答しないとログファイルに記録されている場合は、ブローカを停止してから再起動します。

- 必ず MQ ブローカを先に起動してから、Application Server インスタンスを起動します。

- すべての MQ ブローカが停止した場合、Java Message Service のデフォルト値では、Application Server の停止または起動までに 30 分かかります。Java Message Service の値を調整して、このタイムアウトを許容できる値にしてください。次に例を示します。

      asadmin set --user admin --password administrator
      cluster1.jms-service.reconnect-interval-in-seconds=5

- Previous: 接続プールとフェイルオーバー
- Next: 第 10 章 RMI-IIOP 負荷分散とフェイルオーバー

- © 2010, Oracle Corporation and/or its affiliates