AMQ ブローカーの管理


Red Hat AMQ 7.4

AMQ Broker 7.4 向け

概要

本ガイドでは、AMQ Broker の監視、管理、およびアップグレード方法について説明します。

第1章 ブローカーのアップグレード

1.1. アップグレードについて

Red Hat は、AMQ Broker の新しいバージョンを カスタマーポータル にリリースします。ブローカーを最新バージョンに更新し、最新の機能強化および修正があることを確認します。通常、Red Hat は AMQ Broker の新バージョンを以下の 3 つの方法でリリースします。

メジャーリリース
AMQ Broker 6 から AMQ Broker 7 など、アプリケーションがあるメジャーリリースから次のメジャーリリースに移行する場合は、メジャーアップグレードまたは移行が必要です。この種のアップグレードについては、本書では扱いません。これまでの AMQ Broker リリースからアップグレードする方法は、Migrating to Red Hat AMQ 7を参照してください。
マイナーリリース
AMQ Broker では、マイナーリリースを定期的に提供します。マイナーリリースは、新機能やバグ修正が含まれる更新です。AMQ Broker マイナーリリースを別のリリースにアップグレードする計画がある場合 (AMQ Broker 7.0 から AMQ Broker 7.1 など)、プライベート、サポートされていない、またはテクノロジープレビューコンポーネントを使用しないアプリケーションには、コードの変更は必要ありません。
マイクロリリース
AMQ Broker は、マイナーな機能強化および修正が含まれるマイクロリリースを定期的に提供します。マイクロリリースは、7.0.1 から 7.0.2 など、最後の数字のマイナーリリースバージョンを増分します。マイクロリリースはコードの変更を必要としませんが、一部のリリースには設定の変更が必要になる場合があります。

1.2. ブローカーインスタンスの 7.0.x から 7.0.y へのアップグレード

AMQ Broker を別のバージョン 7.0 にアップグレードする手順は、インストール用の手順と類似しています。カスタマーポータルからアーカイブをダウンロードして展開します。以下のサブセクションでは、異なるオペレーティングシステムの 7.0.x ブローカーをアップグレードする方法を説明します。

1.2.1. Linux の 7.0.x から 7.0.y へのアップグレード

ダウンロードするアーカイブの名前は、以下の例で使用されているものとは異なる場合があります。

前提条件

  • AMQ Broker をアップグレードする前に、ターゲットリリースのリリースノートを確認してください。

    本リリースノートでは、ターゲットリリースにおける重要な機能拡張、既知の問題、および動作の変更を説明します。

    詳細は、AMQ Broker 7.0 リリースノート を参照してください。

手順

  1. AMQ Broker アーカイブのダウンロード の手順に従って、Red Hat カスタマーポータルから必要なアーカイブを ダウンロードします。
  2. アーカイブの所有者を、AMQ Broker インストールが含まれるのと同じユーザーに変更します。

    sudo chown amq-broker:amq-broker jboss-amq-7.x.x.redhat-1.zip
  3. AMQ Broker の元のインストール時に作成されたディレクトリーにアーカイブを移動します。以下の例では、/opt/redhat というディレクトリーを使用しています。

    sudo mv jboss-amq-7.x.x.redhat-1.zip /opt/redhat
  4. ディレクトリーの所有者は、圧縮アーカイブのコンテンツを展開します。アーカイブは圧縮形式で保持されます。以下の例では、ユーザー amq-broker は unzip コマンドを使用してアーカイブを展開します。

    su - amq-broker
    cd /opt/redhat
    unzip jboss-amq-7.x.x.redhat-1.zip
  5. ブローカーが実行している場合は停止します。

    BROKER_INSTANCE_DIR/bin/artemis stop
  6. 現在のユーザーのホームディレクトリーにコピーして、ブローカーのインスタンスディレクトリーをバックアップします。

    cp -r BROKER_INSTANCE_DIR ~/
  7. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止すると、BROKER_INSTANCE_DIR\log\artemis.log にあるログファイルの最後に、以下のような行が表示されます。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  8. BROKER_INSTANCE_DIR/etc/artemis.profile 設定ファイルを編集して、アーカイブを抽出した際に作成された新しいディレクトリーに ARTEMIS_HOME プロパティーを設定します。

    ARTEMIS_HOME='/opt/redhat/jboss-amq-7.x.x-redhat-1'
  9. 以下のコマンドを入力してブローカーを再起動します。

    BROKER_INSTANCE_DIR/bin/artemis run
  10. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーを起動した後、ログファイル BROKER_INSTANCE_DIR\log\artemis.log を開くと、以下のような行があります。ブローカーの稼働後にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0.amq-700005-redhat-1 [0.0.0.0, nodeID=4782d50d-47a2-11e7-a160-9801a793ea45]

1.2.2. Windows の 7.0.x から 7.0.y へのアップグレード

前提条件

  • AMQ Broker をアップグレードする前に、ターゲットリリースのリリースノートを確認してください。

    本リリースノートでは、ターゲットリリースにおける重要な機能拡張、既知の問題、および動作の変更を説明します。

    詳細は、AMQ Broker 7.0 リリースノート を参照してください。

手順

  1. AMQ Broker アーカイブのダウンロード の手順に従って、Red Hat カスタマーポータルから必要なアーカイブを ダウンロードします。
  2. ファイルマネージャーを使用して、アーカイブを AMQ Broker の最後のインストール時に作成したフォルダーに移動します。
  3. zip ファイルを右クリックし、Extract All を選択して、ファイルの内容をディレクトリーに展開します。
  4. 以下のコマンドを入力してブローカーが実行している場合は停止します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe stop
  5. ファイルマネージャーを使用してブローカーをバックアップします。

    1. BROKER_INSTANCE_DIR フォルダーを右クリックし、Copy を選択します。
    2. 同じウィンドウを右クリックし、Paste を選択します。
  6. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止すると、以下のような行がログファイルの末尾に表示されます。これは、BROKER_INSTANCE_DIR \log\artemis.log にあります。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. BROKER_INSTANCE_DIR\etc\artemis.profile 設定ファイルを編集して、ARTEMIS_HOME プロパティーをアーカイブの抽出時に作成された新規ディレクトリーに設定します。

    ARTEMIS_HOME=NEW_INSTALL_DIR
  8. 以下のコマンドを入力してブローカーを再起動します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe start
  9. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーの起動後に、BROKER_INSTANCE_DIR\log\artemis.log ログファイルを開き、以下のような 2 つの行を見つけます。ブローカーの稼働後にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0.amq-700005-redhat-1 [0.0.0.0, nodeID=4782d50d-47a2-11e7-a160-9801a793ea45]

1.3. ブローカーインスタンスの 7.0.x から 7.1.0 へのアップグレード

AMQ Broker 7.1.0 には、以前のバージョンに含まれていない設定ファイルおよび設定が含まれています。ブローカーインスタンスを 7.0.x から 7.1.0 にアップグレードするには、これらの新しいファイルおよび設定を既存の 7.0.x ブローカーインスタンスに追加する必要があります。以下のサブセクションでは、異なるオペレーティングシステムの 7.0.x ブローカーインスタンスを 7.1.0 にアップグレードする方法を説明します。

重要

AMQ Broker 7.1.0 以降では、デフォルトでローカルホストからのみ AMQ Console にアクセスできます。リモートアクセスを有効にするには、BROKER_INSTANCE_DIR/etc/jolokia-access.xml で設定を変更する必要があります。詳細は、「Securing AMQ Console and AMQ Broker Connections」 を参照してください。

1.3.1. Linux での 7.0.x から 7.1.0 へのアップグレード

7.0.x ブローカーをアップグレードする前に、Red Hat AMQ Broker 7.1.0 をインストールし、一時的なブローカーインスタンスを作成する必要があります。これにより、7.0.x ブローカーのアップグレードに必要な 7.1.0 設定ファイルが生成されます。

前提条件

  • AMQ Broker をアップグレードする前に、ターゲットリリースのリリースノートを確認してください。

    本リリースノートでは、ターゲットリリースにおける重要な機能拡張、既知の問題、および動作の変更を説明します。

    詳細は、AMQ Broker 7.1 リリースノート を参照してください。

  • 7.0.x ブローカーをアップグレードする前に、最初にバージョン 7.1 をインストールする必要があります。

    Linux に 7.1 をインストールする手順は、Installing AMQ Broker を参照してください。

手順

  1. 実行中の場合は、アップグレードする 7.0.x ブローカーを停止します。

    $ BROKER_INSTANCE_DIR/bin/artemis stop
  2. 現在のユーザーのホームディレクトリーにコピーして、ブローカーのインスタンスディレクトリーをバックアップします。

    cp -r BROKER_INSTANCE_DIR ~/
  3. 7.0.xブローカーの BROKER_INSTANCE_DIR/etc/ディレクトリにあるartemis.profileファイルを開きます。

    1. ARTEMIS_HOME プロパティーを更新し、その値が AMQ Broker 7.1.0 のインストールディレクトリーを参照するようにします。

      ARTEMIS_HOME="7.1.0_INSTALL_DIR"
    2. 更新した行の1つ下の行で、プロパティー ARTEMIS_INSTANCE_URI を追加して、7.0.x ブローカーインスタンスディレクトリーを参照する値を割り当てます。

      ARTEMIS_INSTANCE_URI="file://7.0.x_BROKER_INSTANCE_DIR"
    3. JAVA_ARGS プロパティーに jolokia.policyLocation パラメーターを追加し、以下の値を割り当てて更新します。

      -Djolokia.policyLocation=${ARTEMIS_INSTANCE_URI}/etc/jolokia-access.xml
  4. 7.1.0 ブローカーインスタンスを作成します。作成手順では、7.0.x から 7.1.0 へのアップグレードに必要な設定ファイルが生成されます。以下の例では、インスタンスが upgrade_tmp ディレクトリーに作成されることに注意してください。

    $ 7.1.0_INSTALL_DIR/bin/artemis create --allow-anonymous --user admin --password admin upgrade_tmp
  5. 一時的な7.1.0インスタンスのetcディレクトリから、7.0.xブローカーのBROKER_INSTANCE_DIR/etc/ディレクトリに設定ファイルをコピーします。

    1. management.xml ファイルをコピーします。

      $ cp TEMPORARY_7.1.0_BROKER_INSTANCE_DIR/etc/management.xml 7.0_BROKER_INSTANCE_DIR/etc/
    2. jolokia-access.xml ファイルをコピーします。

      $ cp TEMPORARY_7.1.0_BROKER_INSTANCE_DIR/etc/jolokia-access.xml 7.0_BROKER_INSTANCE_DIR/etc/
  6. 7.0.xブローカーのBROKER_INSTANCE_DIR/etc/ディレクトリにあるbootstrap.xmlファイルを開きます。

    1. 以下の 2 つの行をコメントアウトまたは削除します。

      <app url="jolokia" war="jolokia.war"/>
      <app url="hawtio" war="hawtio-no-slf4j.war"/>
    2. 以下の行を追加して、直前の手順で削除された 2 つの行を置き換えます。

      <app url="console" war="console.war"/>
  7. アップグレードしたブローカーを起動します。

    $ BROKER_INSTANCE_DIR/bin/artemis run

その他のリソース

ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。

1.3.2. Windows での 7.0.x から 7.1.0 へのアップグレード

7.0.x ブローカーをアップグレードする前に、Red Hat AMQ Broker 7.1.0 をインストールし、一時的なブローカーインスタンスを作成する必要があります。これにより、7.0.x ブローカーのアップグレードに必要な 7.1.0 設定ファイルが生成されます。

前提条件

  • AMQ Broker をアップグレードする前に、ターゲットリリースのリリースノートを確認してください。

    本リリースノートでは、ターゲットリリースにおける重要な機能拡張、既知の問題、および動作の変更を説明します。

    詳細は、AMQ Broker 7.1 リリースノート を参照してください。

  • 7.0.x ブローカーをアップグレードする前に、最初にバージョン 7.1 をインストールする必要があります。

    Windows に 7.1 をインストールする手順は、Installing AMQ Broker を参照してください。

手順

  1. 実行中の場合は、アップグレードする 7.0.x ブローカーを停止します。

    > BROKER_INSTANCE_DIR\bin\artemis-service.exe stop
  2. ファイルマネージャーを使用してブローカーのインスタンスディレクトリーをバックアップします。

    1. BROKER_INSTANCE_DIR フォルダーを右クリックし、Copy を選択します。
    2. 同じウィンドウを右クリックし、Paste を選択します。
  3. 7.0.xブローカーの BROKER_INSTANCE_DIR/etc/ディレクトリにあるartemis.profileファイルを開きます。

    1. ARTEMIS_HOME プロパティーを更新し、その値が AMQ Broker 7.1.0 のインストールディレクトリーを参照するようにします。

      ARTEMIS_HOME="7.1.0_INSTALL_DIR"
    2. 更新した行の1つ下の行で、プロパティー ARTEMIS_INSTANCE_URI を追加して、7.0.x ブローカーインスタンスディレクトリーを参照する値を割り当てます。

      ARTEMIS_INSTANCE_URI="file://7.0.x_BROKER_INSTANCE_DIR"
    3. JAVA_ARGS プロパティーに jolokia.policyLocation パラメーターを追加し、以下の値を割り当てて更新します。

      -Djolokia.policyLocation=${ARTEMIS_INSTANCE_URI}/etc/jolokia-access.xml
  4. 7.1.0 ブローカーインスタンスを作成します。作成手順では、7.0.x から 7.1.0 へのアップグレードに必要な設定ファイルが生成されます。以下の例では、インスタンスが upgrade_tmp ディレクトリーに作成されることに注意してください。

    > 7.1.0_INSTALL_DIR/bin/artemis create --allow-anonymous --user admin --password admin upgrade_tmp
  5. 一時的な7.1.0インスタンスのetcディレクトリから、7.0.xブローカーのBROKER_INSTANCE_DIR/etc/ディレクトリに設定ファイルをコピーします。

    1. management.xml ファイルをコピーします。

      > cp TEMPORARY_7.1.0_BROKER_INSTANCE_DIR/etc/management.xml 7.0_BROKER_INSTANCE_DIR/etc/
    2. jolokia-access.xml ファイルをコピーします。

      > cp TEMPORARY_7.1.0_BROKER_INSTANCE_DIR/etc/jolokia-access.xml 7.0_BROKER_INSTANCE_DIR/etc/
  6. 7.0.xブローカーのBROKER_INSTANCE_DIR/etc/ディレクトリにあるbootstrap.xmlファイルを開きます。

    1. 以下の 2 つの行をコメントアウトまたは削除します。

      <app url="jolokia" war="jolokia.war"/>
      <app url="hawtio" war="hawtio-no-slf4j.war"/>
    2. 以下の行を追加して、直前の手順で削除された 2 つの行を置き換えます。

      <app url="console" war="console.war"/>
  7. アップグレードしたブローカーを起動します。

    > BROKER_INSTANCE_DIR\bin\artemis-service.exe start

その他のリソース

ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。

1.4. ブローカーインスタンスの 7.1.x から 7.2.0 へのアップグレード

AMQ Broker 7.2.0 には、7.0.x バージョンに含まれていない設定ファイルおよび設定が含まれています。7.0.x インスタンスを実行している場合は、最初にこれらのブローカーインスタンスを 7.0.x から 7.1.0 にアップグレードしてから 7.2.5.0 にアップグレードする必要があります。以下のサブセクションでは、異なるオペレーティングシステムの 7.1.x ブローカーインスタンスを 7.2.0 にアップグレードする方法を説明します。

重要

AMQ Broker 7.1.0 以降では、デフォルトでローカルホストからのみ AMQ Console にアクセスできます。リモートアクセスを有効にするには、BROKER_INSTANCE_DIR/etc/jolokia-access.xml で設定を変更する必要があります。詳細は、「Securing AMQ Console and AMQ Broker Connections」 を参照してください。

1.4.1. Linux での 7.1.x から 7.2.0 へのアップグレード

注記

ダウンロードするアーカイブの名前は、以下の例で使用されているものとは異なる場合があります。

手順

  1. AMQ Broker アーカイブのダウンロード の手順に従って、Red Hat カスタマーポータルから必要なアーカイブを ダウンロードします。
  2. アーカイブの所有者を、AMQ Broker インストールが含まれるのと同じユーザーに変更します。

    sudo chown amq-broker:amq-broker amq-7.x.x.redhat-1.zip
  3. AMQ Broker の元のインストール時に作成されたディレクトリーにアーカイブを移動します。以下の例では、/opt/redhat というディレクトリーを使用しています。

    sudo mv amq-7.x.x.redhat-1.zip /opt/redhat
  4. ディレクトリーの所有者は、圧縮アーカイブのコンテンツを展開します。以下の例では、ユーザー amq-broker は unzip コマンドを使用してアーカイブを展開します。

    su - amq-broker
    cd /opt/redhat
    unzip jboss-amq-7.x.x.redhat-1.zip
  5. ブローカーが実行している場合は停止します。

    BROKER_INSTANCE_DIR/bin/artemis stop
  6. 現在のユーザーのホームディレクトリーにコピーして、ブローカーのインスタンスディレクトリーをバックアップします。

    cp -r BROKER_INSTANCE_DIR ~/
  7. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止すると、BROKER_INSTANCE_DIR\log\artemis.log にあるログファイルの最後に、以下のような行が表示されます。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. BROKER_INSTANCE_DIR/etc/artemis.profile 設定ファイルを編集して、アーカイブを抽出した際に作成された新しいディレクトリーに ARTEMIS_HOME プロパティーを設定します。

    ARTEMIS_HOME='/opt/redhat/amq-7.x.x-redhat-1'
  9. 以下のコマンドを入力してブローカーを再起動します。

    BROKER_INSTANCE_DIR/bin/artemis run
  10. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーを起動した後、ログファイル BROKER_INSTANCE_DIR\log\artemis.log を開くと、以下のような行があります。ブローカーの稼働後にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

その他のリソース

  • ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。
  • ブローカーインスタンスの設定ファイルおよびデータを、ブローカーインスタンスのディレクトリー外の場所を含む、カスタムディレクトリーに格納できるようになりました。BROKER_INSTANCE_DIR/etc/artemis.profile ファイルで、ブローカーインスタンスの作成後のカスタムディレクトリーの場所を指定し、ARTEMIS_INSTANCE_ETC_URI プロパティーを更新します。以前のバージョンでは、これらの設定ファイルとデータは、ブローカーインスタンスのディレクトリー内の etc/ ディレクトリーおよび data/ ディレクトリーにのみ保存できました。

1.4.2. Windows での 7.1.x から 7.2.0 へのアップグレード

手順

  1. AMQ Broker アーカイブのダウンロード の手順に従って、Red Hat カスタマーポータルから必要なアーカイブを ダウンロードします。
  2. ファイルマネージャーを使用して、アーカイブを AMQ Broker の最後のインストール時に作成したフォルダーに移動します。
  3. zip ファイルを右クリックし、Extract All を選択して、ファイルの内容をディレクトリーに展開します。
  4. 以下のコマンドを入力してブローカーが実行している場合は停止します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe stop
  5. ファイルマネージャーを使用してブローカーをバックアップします。

    1. BROKER_INSTANCE_DIR フォルダーを右クリックし、Copy を選択します。
    2. 同じウィンドウを右クリックし、Paste を選択します。
  6. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止すると、以下のような行がログファイルの末尾に表示されます。これは、BROKER_INSTANCE_DIR \log\artemis.log にあります。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. BROKER_INSTANCE_DIR\etc\artemis.profile.cmd および BROKER_INSTANCE_DIR\bin\artemis-service.xml 設定ファイルを編集して、アーカイブを抽出した際に作成された新しいディレクトリに、ARTEMIS_HOMEプロパティを設定します。

    ARTEMIS_HOME=NEW_INSTALL_DIR
  8. 以下のコマンドを入力してブローカーを再起動します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe start
  9. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーの起動後に、BROKER_INSTANCE_DIR\log\artemis.log ログファイルを開き、以下のような 2 つの行を見つけます。ブローカーの稼働後にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

その他のリソース

  • ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。
  • ブローカーインスタンスの設定ファイルおよびデータを、ブローカーインスタンスのディレクトリー外の場所を含む、カスタムディレクトリーに格納できるようになりました。BROKER_INSTANCE_DIR\etc\artemis.profile ファイルで、ブローカーインスタンスの作成後にカスタムディレクトリーの場所を指定して、ARTEMIS_INSTANCE_ETC_URI プロパティーを更新します。以前のバージョンでは、これらの設定ファイルとデータは、ブローカーインスタンスのディレクトリー内の \etc ディレクトリーおよび \data ディレクトリーにのみ保存できました。

1.5. 7.2.x から 7.3.0 へのブローカーインスタンスのアップグレード

以下のサブセクションでは、異なるオペレーティングシステムの 7.2.x ブローカーインスタンスを 7.3.0 にアップグレードする方法を説明します。

1.5.1. 非推奨のディスパッチコンソールによる例外の解決

7.3.0 以降、AMQ Broker には Hawtio ディスパッチコンソールプラグインである dispatch-hawtio-console.war は同梱されなくなりました。以前のバージョンでは、AMQ Interconnect の管理にディスパッチコンソールを使用していました。ただし、AMQ Interconnect は独自のスタンドアロン Web コンソールを使用するようになりました。この変更は、以降のセクションのアップグレード手順に影響します。

ブローカーインスタンスを 7.3.0 にアップグレードする前に追加のアクションを実行すると、アップグレードプロセスにより以下のような例外が生成されます。

2019-04-11 18:00:41,334 WARN  [org.eclipse.jetty.webapp.WebAppContext] Failed startup of context o.e.j.w.WebAppContext@1ef3efa8{/dispatch-hawtio-console,null,null}{/opt/amqbroker/amq-broker-7.3.0/web/dispatch-hawtio-console.war}: java.io.FileNotFoundException: /opt/amqbroker/amq-broker-7.3.0/web/dispatch-hawtio-console.war.

アップグレードの成功に影響を及ぼすことなく、前述の例外を無視しても問題ありません。

ただし、アップグレード中にこの例外が表示されないようにする場合は、最初に既存のブローカーインスタンスの bootstrap.xml ファイルで Hawtio ディスパッチコンソールプラグインへの参照を削除する必要があります。bootstrap.xmlファイルは、ブローカーインスタンスの{instance_directory}/etc/ディレクトリにあります。以下の例は、AMQ Broker 7.2.4 インスタンスの bootstrap.xml ファイルの内容の一部を示しています。

<broker xmlns="http://activemq.org/schema">
....
   <!-- The web server is only bound to localhost by default -->
   <web bind="http://localhost:8161" path="web">
       <app url="redhat-branding" war="redhat-branding.war"/>
       <app url="artemis-plugin" war="artemis-plugin.war"/>
       <app url="dispatch-hawtio-console" war="dispatch-hawtio-console.war"/>
       <app url="console" war="console.war"/>
   </web>
</broker>

AMQ Broker をバージョン 7.3.0 にアップグレードする際に例外を回避するには、前述の例のように <app url="dispatch-hawtio-console" war="dispatch-hawtio-console.war"/> の行を削除します。次に、後続のセクションで説明されているように、変更したブートストラップファイルを保存し、アップグレードプロセスを開始します。

重要

AMQ Broker 7.1.0 以降では、デフォルトでローカルホストからのみ AMQ Console にアクセスできます。リモートアクセスを有効にするには、BROKER_INSTANCE_DIR/etc/jolokia-access.xml で設定を変更する必要があります。詳細は、「Securing AMQ Console and AMQ Broker Connections」 を参照してください。

1.5.2. Linux での 7.2.x から 7.3.0 へのアップグレード

注記

ダウンロードするアーカイブの名前は、以下の例で使用されているものとは異なる場合があります。

手順

  1. AMQ Broker アーカイブのダウンロード の手順に従って、Red Hat カスタマーポータルから必要なアーカイブを ダウンロードします。
  2. アーカイブの所有者を、AMQ Broker インストールが含まれるのと同じユーザーに変更します。

    sudo chown amq-broker:amq-broker amq-7.x.x.redhat-1.zip
  3. AMQ Broker の元のインストール時に作成されたディレクトリーにアーカイブを移動します。以下の例では、/opt/redhat というディレクトリーを使用しています。

    sudo mv amq-7.x.x.redhat-1.zip /opt/redhat
  4. ディレクトリーの所有者は、圧縮アーカイブのコンテンツを展開します。以下の例では、ユーザー amq-broker は unzip コマンドを使用してアーカイブを展開します。

    su - amq-broker
    cd /opt/redhat
    unzip jboss-amq-7.x.x.redhat-1.zip
  5. ブローカーが実行している場合は停止します。

    BROKER_INSTANCE_DIR/bin/artemis stop
  6. 現在のユーザーのホームディレクトリーにコピーして、ブローカーのインスタンスディレクトリーをバックアップします。

    cp -r BROKER_INSTANCE_DIR ~/
  7. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止すると、BROKER_INSTANCE_DIR\log\artemis.log にあるログファイルの最後に、以下のような行が表示されます。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.6.3.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. BROKER_INSTANCE_DIR/etc/artemis.profile 設定ファイルを編集して、アーカイブを抽出した際に作成された新しいディレクトリーに ARTEMIS_HOME プロパティーを設定します。

    ARTEMIS_HOME='/opt/redhat/amq-7.x.x-redhat-1'
  9. 以下のコマンドを入力してブローカーを再起動します。

    BROKER_INSTANCE_DIR/bin/artemis run
  10. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーを起動した後、ログファイル BROKER_INSTANCE_DIR\log\artemis.log を開くと、以下のような行があります。ブローカーの稼働後にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

その他のリソース

  • ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。
  • ブローカーインスタンスの設定ファイルおよびデータを、ブローカーインスタンスのディレクトリー外の場所を含む、カスタムディレクトリーに格納できるようになりました。BROKER_INSTANCE_DIR/etc/artemis.profile ファイルで、ブローカーインスタンスの作成後のカスタムディレクトリーの場所を指定し、ARTEMIS_INSTANCE_ETC_URI プロパティーを更新します。以前のバージョンでは、これらの設定ファイルとデータは、ブローカーインスタンスのディレクトリー内の etc/ ディレクトリーおよび data/ ディレクトリーにのみ保存できました。

1.5.3. Windows での 7.2.x から 7.3.0 へのアップグレード

手順

  1. AMQ Broker アーカイブのダウンロード の手順に従って、Red Hat カスタマーポータルから必要なアーカイブを ダウンロードします。
  2. ファイルマネージャーを使用して、アーカイブを AMQ Broker の最後のインストール時に作成したフォルダーに移動します。
  3. zip ファイルを右クリックし、Extract All を選択して、ファイルの内容をディレクトリーに展開します。
  4. 以下のコマンドを入力してブローカーが実行している場合は停止します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe stop
  5. ファイルマネージャーを使用してブローカーをバックアップします。

    1. BROKER_INSTANCE_DIR フォルダーを右クリックし、Copy を選択します。
    2. 同じウィンドウを右クリックし、Paste を選択します。
  6. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止すると、以下のような行がログファイルの末尾に表示されます。これは、BROKER_INSTANCE_DIR \log\artemis.log にあります。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.3.amq-720001-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. BROKER_INSTANCE_DIR\etc\artemis.profile.cmd および BROKER_INSTANCE_DIR\bin\artemis-service.xml 設定ファイルを編集して、アーカイブを抽出した際に作成された新しいディレクトリに、ARTEMIS_HOMEプロパティを設定します。

    ARTEMIS_HOME=NEW_INSTALL_DIR
  8. BROKER_INSTANCE_DIR\etc\artemis.profile.cmd 設定ファイルを編集して、JAVA_ARGS 環境変数を設定し、正しいログマネージャーバージョンを参照します。

    JAVA_ARGS=NEW_INSTALL_DIR\lib\jboss-logmanager-2.0.3.Final-redhat-1.jar
  9. BROKER_INSTANCE_DIR\bin\artemis-service.xml 設定ファイルを編集し、正しいログマネージャーバージョンを参照するようにブートストラップクラスパスの引数を設定します。

    Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.0.3.Final-redhat-1.jar
  10. 以下のコマンドを入力してブローカーを再起動します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe start
  11. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーの起動後に、BROKER_INSTANCE_DIR\log\artemis.log ログファイルを開き、以下のような 2 つの行を見つけます。ブローカーの稼働後にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

その他のリソース

  • ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。
  • ブローカーインスタンスの設定ファイルおよびデータを、ブローカーインスタンスのディレクトリー外の場所を含む、カスタムディレクトリーに格納できるようになりました。BROKER_INSTANCE_DIR\etc\artemis.profile ファイルで、ブローカーインスタンスの作成後にカスタムディレクトリーの場所を指定して、ARTEMIS_INSTANCE_ETC_URI プロパティーを更新します。以前のバージョンでは、これらの設定ファイルとデータは、ブローカーインスタンスのディレクトリー内の \etc ディレクトリーおよび \data ディレクトリーにのみ保存できました。

1.6. ブローカーインスタンスの 7.3.0 から 7.4.x へのアップグレード

以下のサブセクションでは、異なるオペレーティングシステムの 7.3.0 ブローカーインスタンスを 7.4.x にアップグレードする方法を説明します。

重要

AMQ Broker 7.1.0 以降では、デフォルトでローカルホストからのみ AMQ Console にアクセスできます。リモートアクセスを有効にするには、BROKER_INSTANCE_DIR/etc/jolokia-access.xml で設定を変更する必要があります。詳細は、「Securing AMQ Console and AMQ Broker Connections」 を参照してください。

1.6.1. Linux での 7.3.0 から 7.4.x へのアップグレード

注記

ダウンロードするアーカイブの名前は、以下の例で使用されているものとは異なる場合があります。

手順

  1. Red Hat カスタマーポータルから必要なアーカイブをダウンロードします。AMQ Broker アーカイブのダウンロード に記載されている手順に従います。
  2. アーカイブの所有者を、AMQ Broker インストールが含まれるのと同じユーザーに変更します。以下の例では、amq-broker というユーザーを設定しています。

    sudo chown amq-broker:amq-broker amq-broker-7.4.x.redhat-1.zip
  3. AMQ Broker の元のインストール時に作成されたディレクトリーにアーカイブを移動します。以下の例では、/opt/redhat を使用しています。

    sudo mv amq-broker-7.4.x.redhat-1.zip /opt/redhat
  4. ディレクトリーの所有者は、圧縮アーカイブのコンテンツを展開します。以下の例では、ユーザー amq-brokerunzip コマンドを使用してアーカイブを展開します。

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.4.x.redhat-1.zip
  5. ブローカーが実行されている場合は停止します。

    BROKER_INSTANCE_DIR/bin/artemis stop
  6. 現在のユーザーのホームディレクトリーにコピーして、ブローカーのインスタンスディレクトリーをバックアップします。

    cp -r BROKER_INSTANCE_DIR ~/
  7. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止すると、BROKER_INSTANCE_DIR/log/artemis.logファイルの最後に以下のような行が表示されます。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. <broker_instance_dir>/etc/artemis.profile 設定ファイルを編集してください。

    1. アーカイブの抽出時に作成された新しいディレクトリーに ARTEMIS_HOME プロパティーを設定します。

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.4.x-redhat-1'
    2. ブートストラップクラスパスの引数 XbootclasspathJAVA_ARGS に追加します。この引数は、ログマネージャーに依存するファイルを指定します。

      -Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.1.Final-redhat-00001.jar
  9. BROKER_INSTANCE_DIR/etc/bootstrap.xml 設定ファイルを編集します。<web> 設定要素で、AMQ Broker の metrics プラグインファイルへの参照を追加します。

    <app url="metrics" war="metrics.war"/>
  10. ブローカーを再起動します。

    BROKER_INSTANCE_DIR/bin/artemis run
  11. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーの起動後に、BROKER_INSTANCE_DIR/log/artemis.log ファイルを開きます。以下のような 2 つの行を見つけます。ブローカーの稼働時にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

その他のリソース

  • ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。
  • ブローカーインスタンスの設定ファイルおよびデータを、ブローカーインスタンスのディレクトリー外の場所を含む、カスタムディレクトリーに格納できるようになりました。BROKER_INSTANCE_DIR/etc/artemis.profile ファイルで、ブローカーインスタンスの作成後のカスタムディレクトリーの場所を指定し、ARTEMIS_INSTANCE_ETC_URI プロパティーを更新します。以前のバージョンでは、これらの設定ファイルとデータは、ブローカーインスタンスのディレクトリー内の etc/ ディレクトリーおよび data/ ディレクトリーにのみ保存できました。

1.6.2. Windows での 7.3.0 から 7.4.x へのアップグレード

手順

  1. Red Hat カスタマーポータルから必要なアーカイブをダウンロードします。AMQ Broker アーカイブのダウンロード に記載されている手順に従います。
  2. ファイルマネージャーを使用して、アーカイブを AMQ Broker の最後のインストール時に作成したフォルダーに移動します。
  3. ファイルの内容をインストールディレクトリーに展開します。.zip ファイルを右クリックし、Extract All を選択します。
  4. ブローカーが実行されている場合は停止します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe stop
  5. ファイルマネージャーを使用してブローカーをバックアップします。

    1. BROKER_INSTANCE_DIR フォルダーをクリックします。Copy を選択します。
    2. 同じウィンドウを右クリックします。Paste を選択します。
  6. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止したら、BROKER_INSTANCE_DIR\log\artemis.log に以下のような行が表示されます。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. BROKER_INSTANCE_DIR\etc\artemis.profile.cmdBROKER_INSTANCE_DIR\bin\artemis-service.xml 設定ファイルを編集します。アーカイブの抽出時に作成された新しいディレクトリーに ARTEMIS_HOME プロパティーを設定します。

    ARTEMIS_HOME=NEW_INSTALL_DIR
  8. BROKER_INSTANCE_DIR\etc\artemis.profile.cmd 設定ファイルを編集します。JAVA_ARGS の場合、ブートストラップクラスパスの引数 Xbootclasspath のみ を変更します。正しいログマネージャーのバージョンと依存ファイルを指定します。

    JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.1.Final-redhat-00001.jar
  9. BROKER_INSTANCE_DIR\bin\artemis-service.xml 設定ファイルを編集します。ブートストラップクラスパスの引数 Xbootclasspath を変更し、正しいログマネージャーバージョンと依存するファイルを指定します。

    <argument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.1.Final-redhat-00001.jar</argument>
  10. BROKER_INSTANCE_DIR\etc\bootstrap.xml 設定ファイルを編集します。<web> 設定要素で、AMQ Broker の metrics プラグインファイルへの参照を追加します。

    <app url="metrics" war="metrics.war"/>
  11. ブローカーを再起動します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe start
  12. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーの起動後に、BROKER_INSTANCE_DIR \log\artemis.logファイルを開きます。以下のような 2 つの行を見つけます。ブローカーの稼働時にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

その他のリソース

  • ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。
  • ブローカーインスタンスの設定ファイルおよびデータを、ブローカーインスタンスのディレクトリー外の場所を含む、カスタムディレクトリーに格納できるようになりました。BROKER_INSTANCE_DIR\etc\artemis.profile ファイルで、ブローカーインスタンスの作成後にカスタムディレクトリーの場所を指定して、ARTEMIS_INSTANCE_ETC_URI プロパティーを更新します。以前のバージョンでは、これらの設定ファイルとデータは、ブローカーインスタンスのディレクトリー内の \etc ディレクトリーおよび \data ディレクトリーにのみ保存できました。

1.7. ブローカーインスタンスの 7.4.x から 7.4.y へのアップグレード

重要

AMQ Broker 7.4 は、Long Term Support (LTS) リリースバージョンとして指定されています。バグ修正およびセキュリティーアドバイザリーは、少なくとも 12 カ月間、一連のマイクロリリース(7.4.1、7.42、7.3 など)で AMQ Broker 7.4 で利用可能になります。つまり、新しいマイナーリリースにアップグレードしなくても、AMQ Broker の最新のバグ修正およびセキュリティーアドバイザリーを取得できます。

重要

AMQ Broker 7.1.0 以降では、デフォルトでローカルホストからのみ AMQ Console にアクセスできます。リモートアクセスを有効にするには、BROKER_INSTANCE_DIR/etc/jolokia-access.xml で設定を変更する必要があります。詳細は、「Securing AMQ Console and AMQ Broker Connections」 を参照してください。

以下のサブセクションでは、異なるオペレーティングシステムの 7.4.x ブローカーインスタンスを 7.4.y(例: 7.4.3 ブローカーインスタンスを 7.4.4)にアップグレードする方法を説明します。

1.7.1. Linux 上の 7.4.x から 7.4.y へのアップグレード

注記

ダウンロードするアーカイブの名前は、以下の例で使用されているものとは異なる場合があります。

手順

  1. Red Hat カスタマーポータルから必要なアーカイブをダウンロードします。AMQ Broker アーカイブのダウンロード に記載されている手順に従います。
  2. アーカイブの所有者を、AMQ Broker インストールが含まれるのと同じユーザーに変更します。以下の例では、amq-broker というユーザーを設定しています。

    sudo chown amq-broker:amq-broker amq-broker-7.4.y.redhat-1.zip
  3. AMQ Broker の元のインストール時に作成されたディレクトリーにアーカイブを移動します。以下の例では、/opt/redhat を使用しています。

    sudo mv amq-broker-7.4.y.redhat-1.zip /opt/redhat
  4. ディレクトリーの所有者は、圧縮アーカイブのコンテンツを展開します。以下の例では、ユーザー amq-brokerunzip コマンドを使用してアーカイブを展開します。

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.4.y.redhat-1.zip
  5. ブローカーが実行されている場合は停止します。

    BROKER_INSTANCE_DIR/bin/artemis stop
  6. 現在のユーザーのホームディレクトリーにコピーして、ブローカーのインスタンスディレクトリーをバックアップします。

    cp -r BROKER_INSTANCE_DIR ~/
  7. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止すると、BROKER_INSTANCE_DIR/log/artemis.logファイルの最後に以下のような行が表示されます。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. <broker_instance_dir>/etc/artemis.profile 設定ファイルを編集してください。アーカイブの抽出時に作成された新しいディレクトリーに ARTEMIS_HOME プロパティーを設定します。

    ARTEMIS_HOME='/opt/redhat/amq-broker-7.4.y-redhat-1'
  9. ブローカーを再起動します。

    BROKER_INSTANCE_DIR/bin/artemis run
  10. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーの起動後に、BROKER_INSTANCE_DIR/log/artemis.log ファイルを開きます。以下のような 2 つの行を見つけます。ブローカーの稼働時にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

その他のリソース

  • ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。
  • ブローカーインスタンスの設定ファイルおよびデータを、ブローカーインスタンスのディレクトリー外の場所を含む、カスタムディレクトリーに格納できるようになりました。BROKER_INSTANCE_DIR/etc/artemis.profile ファイルで、ブローカーインスタンスの作成後のカスタムディレクトリーの場所を指定し、ARTEMIS_INSTANCE_ETC_URI プロパティーを更新します。以前のバージョンでは、これらの設定ファイルとデータは、ブローカーインスタンスのディレクトリー内の etc/ ディレクトリーおよび data/ ディレクトリーにのみ保存できました。

1.7.2. Windows 上の 7.4.x から 7.4.y へのアップグレード

手順

  1. Red Hat カスタマーポータルから必要なアーカイブをダウンロードします。AMQ Broker アーカイブのダウンロード に記載されている手順に従います。
  2. ファイルマネージャーを使用して、アーカイブを AMQ Broker の最後のインストール時に作成したフォルダーに移動します。
  3. ファイルの内容をインストールディレクトリーに展開します。.zip ファイルを右クリックし、Extract All を選択します。
  4. ブローカーが実行されている場合は停止します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe stop
  5. ファイルマネージャーを使用してブローカーをバックアップします。

    1. BROKER_INSTANCE_DIR フォルダーをクリックします。Copy を選択します。
    2. 同じウィンドウを右クリックします。Paste を選択します。
  6. (オプション) ブローカーの現行バージョンをメモします。ブローカーが停止したら、BROKER_INSTANCE_DIR\log\artemis.log に以下のような行が表示されます。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. BROKER_INSTANCE_DIR\etc\artemis.profile.cmdBROKER_INSTANCE_DIR\bin\artemis-service.xml 設定ファイルを編集します。アーカイブの抽出時に作成された新しいディレクトリーに ARTEMIS_HOME プロパティーを設定します。

    ARTEMIS_HOME=NEW_INSTALL_DIR
  8. ブローカーを再起動します。

    BROKER_INSTANCE_DIR\bin\artemis-service.exe start
  9. (オプション) ブローカーが実行され、バージョンが変更されたことを確認します。ブローカーの起動後に、BROKER_INSTANCE_DIR \log\artemis.logファイルを開きます。以下のような 2 つの行を見つけます。ブローカーの稼働時にログに表示される新しいバージョン番号に注意してください。

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

その他のリソース

  • ブローカーのインスタンス作成に関する詳細は、ブローカーインスタンスの作成を参照してください。
  • ブローカーインスタンスの設定ファイルおよびデータを、ブローカーインスタンスのディレクトリー外の場所を含む、カスタムディレクトリーに格納できるようになりました。BROKER_INSTANCE_DIR\etc\artemis.profile ファイルで、ブローカーインスタンスの作成後にカスタムディレクトリーの場所を指定して、ARTEMIS_INSTANCE_ETC_URI プロパティーを更新します。以前のバージョンでは、これらの設定ファイルとデータは、ブローカーインスタンスのディレクトリー内の \etc ディレクトリーおよび \data ディレクトリーにのみ保存できました。

第2章 AMQ コンソールの使用

AMQ Console は、AMQ Broker インストールに含まれる Web コンソールであり、Web ブラウザーを使用して AMQ Broker を管理できます。

AMQ Console は hawtio をベースにしています。

2.1. 概要

AMQ Broker はフル機能のメッセージ指向ミドルウェアブローカーです。特殊なキュー処理動作、メッセージの永続性、および管理性を提供します。複数のプロトコルおよびクライアント言語をサポートし、多くのアプリケーションアセットを自由に使用できます。

AMQ Broker の主な機能を使用すると、以下が可能になります。

  • AMQ ブローカーおよびクライアントの監視

    • トポロジーの表示
    • glance でのネットワークの正常性の表示
  • 以下を使用して AMQ ブローカーを管理します。

    • AMQ コンソール
    • コマンドラインインターフェース (CLI)
    • 管理 API

AMQ コンソールでサポートされる Web ブラウザーは Firefox、Chrome、および Internet Explorer です。サポートされるブラウザーバージョンの詳細は、AMQ 7 でサポートされる構成 を参照してください。

2.2. AMQ コンソールへのアクセス

AMQ コンソールのインストール後に、環境にログインしてブローカーに接続できます。環境にインストールされているブローカーの数にかかわらず、単一のブローカーインスタンスで AMQ Console にアクセスします。

手順

  1. AMQ Console で管理する AMQ ブローカーインスタンスを起動します。
  2. 起動したブローカーインスタンスの Web コンソールアドレスに移動します。

    注記

    Web コンソールアドレスは http://HOST:PORT/console/login です。デフォルトのアドレスを使用している場合は、http://localhost:8161/console/login に移動します。

    AMQ Console Login Page
  3. ブローカーインスタンスの作成時に作成したデフォルトのユーザー名およびパスワードを使用して、AMQ コンソールにログインします。

関連情報

ブローカーの使用方法についての詳細は、『 Getting Started with AMQ Broker 』の「 Starting the broker 」を参照してください。

2.3. AMQ コンソールの設定

ユーザーアクセスを設定し、ブローカーのリソースへのアクセスを要求します。

2.3.1. AMQ コンソールへのユーザーアクセスの設定

ブローカーのログインクレデンシャルを使用して AMQ Console にアクセスできます。以下の表は、AMQ コンソールにアクセスするためにブローカーユーザーを追加するさまざまな方法について説明します。

認証方法説明

ゲスト認証

匿名アクセスを有効にします。この設定では、クレデンシャルなしまたは誤ったクレデンシャルで接続するユーザーは自動的に認証され、特定のユーザーとロールが割り当てられます。

詳細は、『 Configuring AMQ Broker 』の「 Enabling Guest Access 」を参照してください。

基本的なユーザーとパスワード認証

各ユーザーに、ユーザー名とパスワードを定義してセキュリティーロールを割り当てる必要があります。ユーザーは、これらのクレデンシャルを使用してのみ AMQ Console にログインできます。

詳細は、『 Configuring AMQ Broker 』の「 Enabling Password Authentication 」を参照してください。

LDAP 認証

ユーザーは、中央の X.500 ディレクトリーサーバーに保存されているユーザーデータに対してクレデンシャルをチェックして認証および認可されます。

詳細は、『 Configuring AMQ Broker 』の「 Adding Certificate-Based Authentication 」を参照してください。

2.3.2. AMQ Console および AMQ Broker 接続のセキュリティー保護

AMQ Console がブローカーのリソースにアクセスできるようにするには、ブローカーのアクセス管理設定ファイルで allow-origin パラメーターを編集して、アクセスできるオリジン URL を指定します。

前提条件

  • 最初に、jolokia-access.xml という名前のアクセス管理設定ファイルをブローカーインスタンスに追加する AMQ Broker 7.1.0 にアップグレードする必要があります。アップグレードの詳細は、『 Managing AMQ Broker 』の「 Upgrading Your Broker to 7.1.0 」を参照してください。

手順

  1. テキストエディターで <broker-instance-dir> /etc/jolokia-access.xml ファイルを開きます。
  2. < cors&gt; セクション内で allow-origin 設定を編集し、AMQ コンソールへのアクセスを許可する各 URL を追加します。以下に例を示します。

    <cors>
       <!-- allow access to web console from localhost -->
       <allow-origin>https://localhost:8161/*</allow-origin>
       <!-- Check for the proper origin on the server side, too -->
       <strict-checking/>
    </cors>
  3. ファイルを保存します。

関連情報

  • クロスオリジンリソース共有の詳細は、「 W3C Recommendations 」を参照してください。
  • セキュリティーコマンドの詳細は、「 Jolokia Protocols 」を参照してください。

2.3.3. AMQ コンソールへのネットワークアクセスのセキュリティー保護

WAN またはインターネット経由でアクセスされる際に AMQ コンソールのセキュリティーを保護するには、SSL を使用して、ネットワークアクセスが http ではなく https を使用します。

前提条件

以下は、< broker-instance-dir> /etc/ にあるはずです。

  • Java KeyStore (.jks)
  • Java TrustStore(クライアント認証が必要な場合のみ)

手順

  1. <broker-instance-dir>/etc/bootstrap.xml ファイルを開きます。
  2. <web> 要素に以下の属性を追加します。

    <web bind="https://localhost:8161"
        path="web"
        keyStorePath="<path_to_KeyStore>"
        keyStorePassword="<password>"
        clientAuth="<true/false>"
        trustStorePath="<path_to_TrustStore>"
        trustStorePassword="<password>">
        ...
    </web>
    属性説明

    bind

    URI スキームを https に変更します。

    keyStorePath

    KeyStore ファイルのパス。以下に例を示します。

    keyStorePath="${artemis.instance}/etc/keystore.jks"

    keyStorePassword

    KeyStore のパスワード。

    clientAuth

    クライアント認証が必要であるかどうかを指定します。デフォルトは false ですが、これを true に変更して認証を有効にできます。

    trustStorePath

    TrustStore ファイルのパス。この属性は、clientAuthtrue の場合にのみ必要です。

    trustStorePassword

    TrustStore のパスワード。

2.4. AMQ Broker デプロイメントの監視

AMQ Console ダッシュボードページを使用して、AMQ Broker のステータスを監視できます。また、独自のダッシュボードを作成して、リアルタイムのチャート、図、およびメトリクスを最も重要です。

2.4.1. ダッシュボードの表示

ダッシュボードは、AMQ Broker 環境に関するリアルタイムデータを提供します。

手順

  1. AMQ Console で、Dashboard タブをクリックします。

    Monitor ダッシュボードが表示され、hawtio に関するリアルタイムデータを表示します。

    AMQ Console Dashboard ページ
  2. 別のダッシュボードに切り替えるには、Dashboard タブをクリックします。

2.4.2. 新規ダッシュボードの作成

ダッシュボードにはウィジェットが含まれており、各ウィジェットはチャート、ダイアグラム、またはメトリクスを表示できます。ダッシュボードは、必要な数だけ作成できます。

手順

  1. AMQ Console で、Dashboard タブをクリックします。
  2. ナビゲーションバーで、Manage をクリックします。

    注記

    Manage ページには、既存のダッシュボードの一覧が表示されます。

    AMQ Console Dashboard の管理
  3. 次のいずれかを行います。

    以下を行う場合以下を行います​

    新規空のダッシュボードの作成

    Create をクリックします。

    既存のダッシュボードと同様のダッシュボードを作成します。

    1. 既存のダッシュボードの横にあるチェックボックスをクリックします。
    2. Duplicate をクリックします。
  4. ダッシュボードの名前を変更するには、以下を実行します。

    1. ダッシュボード名にカーソルを合わせ、鉛筆アイコン( Pencil Icon )をクリックします。
    2. ダッシュボードの新しい名前を入力し、チェックマークアイコン( Checkmark Icon )をクリックします。

2.4.3. AMQ Broker ダッシュボードの作成

新しいダッシュボードを作成して、AMQ Broker のリアルタイムデータを表示できます。

2.4.4. AMQ Broker データの AMQ Console ダッシュボードへの追加

利用可能なキューおよびトピックチャートのいずれかをダッシュボードに追加します。

手順

  1. Artemis タブをクリックします。
  2. ナビゲーションバーで、追加 アイコン( Add Chart to Dashboard Icon )をクリックします。

    Dashboard タブが表示され、利用可能なダッシュボードの一覧が表示されます。

  3. チャートを表示するダッシュボード(またはダッシュボード)を選択し、Add View to Dashboard を クリックします。チャートが選択したダッシュボードに追加されます。

2.4.5. ダッシュボードのレイアウトの変更

ダッシュボードには、メトリクス、ダイアグラム、チャートを表示するウィジェットが含まれます。ダッシュボードでは、これらのウィジェットの表示方法を変更できます。

手順

以下を行う場合以下を行います​

ウィジェットの移動または再配置

ウィジェットをクリックしてダッシュボードの新しい位置にドラッグします。

ウィジェットのタイトルの変更

  1. ウィジェットのタイトルバーにカーソルを合わせ、編集アイコン( Pencil Icon )をクリックします。
  2. ウィジェットの名前を入力してから、チェックマークアイコン( Checkmark Icon )をクリックします。

ウィジェットのサイズ変更

ウィジェットの右下隅で、サイズ変更アイコン( Resize Chart Icon )をクリックしてドラッグします。

ダッシュボードからのウィジェットの削除

ウィジェットのタイトルバーで、クローズアイコン( Close Icon )をクリックします。

2.5. AMQ ブローカーの管理

AMQ Console を使用して AMQ Broker ブローカーに関する重要な情報を表示し、以下のリソースを管理できます。

  • 着信ネットワーク接続 (アクセプター)
  • アドレス
  • Queues

2.5.1. ブローカーの詳細の表示

設定プロパティーとその値を表示し、ブローカーの設定方法を確認します。

手順

  • Artemis タブのフォルダーツリーで、ブローカーを選択します。

    設定プロパティーのリストがブローカーに表示されます。

    接続
    クライアント接続に関する情報を表示します。
    セッション
    クライアントセッションに関する情報を表示します。
    Consumers
    クライアントコンシューマーに関する情報を表示します。
    プロデューサー
    セッションプロデューサーに関する情報を表示します。
    アドレス
    アドレスに関する情報を表示します。
    Queues
    キューに関する情報を表示します。
    ダイアグラム
    ブローカー(マスターおよびスレーブ)、プロデューサーとコンシューマー、アドレス、キューなど、トポロジー内のすべての AMQ Broker リソースの図を表示します。
    属性
    設定された属性に関する情報を表示します。
    操作
    サーバーで実行できる操作に関する情報を表示します。
    チャート
    選択した属性のリアルタイムデータを表示します。
AMQ Console Broker 属性

2.5.2. ブローカーダイアグラムの表示

ブローカー(マスターおよびスレーブ)、プロデューサーおよびコンシューマー、アドレス、キューなど、トポロジー内のすべての AMQ Broker リソースの図を表示できます。

手順

  1. Artemis タブで Diagram をクリックします。

    この例は、10 つのキューがある 3 つのブローカーを表しています。

    AMQ Console Broker Diagram
  2. ダイアグラムに表示されるオブジェクトを変更するには、View ドロップダウンをクリックして、表示する項目を選択します。

2.5.3. アクセプターの表示

ブローカーに設定されたアクセプターの詳細を表示できます。

手順

  1. Artemis タブのフォルダーツリーで、アクセプター フォルダーを展開します。
  2. アクセプターをクリックして、設定方法の詳細を表示します。

    以下の例は、AMQP プロトコルに提供されるデフォルトのアクセプターである amqp アクセプターの設定プロパティーを示しています。

    AMQ Console AMQP アクセプター属性

2.5.4. アドレスおよびキューの管理

アドレスはメッセージングエンドポイントを表します。設定内で、通常のアドレスには一意の名前が指定されます。

キューがアドレスに関連付けられます。アドレスごとに複数のキューが存在する場合があります。受信メッセージがアドレスにマッチすると、設定されたルーティングタイプに応じて、メッセージは 1 つ以上のキューに送信されます。キューは、自動作成および削除ができるように設定できます。

2.5.4.1. アドレスの作成

通常のアドレスには、一意の名前、0 以上のキュー、およびルーティングタイプが指定されます。

ルーティングタイプは、アドレスに関連付けられたキューへメッセージが送信される方法を決定します。アドレスは、2 つの異なるルーティングタイプで設定できます。

メッセージをルーティング先とルーティングする場合

このルーティングタイプを使用する...

ポイントツーポイント方式で、一致するアドレス内の単一キュー。

anycast

パブリッシュ/サブスクライブ方式で、一致するアドレス内のすべてのキュー。

マルチキャスト

アドレスおよびキューを作成および設定し、使用されていない場合はそれらを削除できます。

手順

  1. フォルダーツリーで、ブローカーを選択します。
  2. ナビゲーションバーで drop-down icon ドロップダウンアイコンをクリックして、Create をクリックします。

    アドレスを作成するためのページが表示されます。

    AMQ Console の作成アドレス
  3. 以下のフィールドに入力します。

    Address name
    アドレスのルーティング名。
    Routing type
    以下のオプションのいずれかを選択します。
    マルチキャスト
    このアドレスに送信されたメッセージは、パブリッシュサブスクライブ方式ですべてのサブスクライバーに分散されます。
    anycast
    このアドレスに送信されたメッセージは、ポイントツーポイントでサブスクライバー 1 つのみに配信されます。
    両方
    アドレスごとに複数のルーティングタイプを定義できます。通常、これによりアンチパターンが発生するため、推奨されません。
    注記

    ただし、アドレスが両方のルーティングタイプを使用し、クライアントがどちらにも優先していない場合、ブローカーは通常 anycast ルーティングタイプにデフォルト設定されます。1 つの例外は、クライアントが MQTT プロトコルを使用する場合です。この場合、デフォルトのルーティングタイプは multicast です。

  4. Create Address をクリックします。
2.5.4.2. アドレスへのメッセージの送信

以下の手順では、メッセージをアドレスに送信するのに必要な手順の概要を説明します。

手順

  1. フォルダーツリーで、アドレスを選択します。
  2. ナビゲーションバーで drop-down icon ドロップダウンアイコンをクリックして、Send をクリックします。

    メッセージを作成するページが表示されます。

    AMQ Console の送信メッセージ
  3. 必要な場合は、Header ボタンをクリックしてメッセージヘッダー情報を追加します。
  4. メッセージのボディーを入力します。
  5. Payload format ドロップダウンメニューで、メッセージのボディーのフォーマットのオプションを選択し、Auto format をクリックします。メッセージ本文は、選択した形式向けに人間が判読できるスタイルでフォーマットされます。
  6. Send message をクリックします。メッセージは送信されます。
  7. 追加のメッセージを送信するには、入力した情報のいずれかを変更し、Send message をクリックします。
2.5.4.3. キューの作成

キューは、プロデューサーとコンシューマー間のチャネルを提供します。

前提条件

  • キューをバインドするアドレスが存在する必要があります。

手順

  1. フォルダーツリーで、キューをバインドするアドレスを選択します。
  2. ナビゲーションバーで drop-down icon ドロップダウンアイコンをクリックして、Create をクリックします。

    キューを作成するページが表示されます。

    AMQ Console の作成キュー
  3. 以下のフィールドに入力します。

    Queue name
    キューの一意の名前。
    Routing type
    以下のオプションのいずれかを選択します。
    マルチキャスト
    このアドレスに送信されたメッセージは、アドレスにバインドされるすべてのキューに分散されます。
    anycast
    親アドレスにバインドされた 1 つのキューのみがメッセージのコピーを受信します。メッセージはアドレスにバインドされたすべてのキューに均等に分散されます。
    永続性
    このオプションを選択すると、キューとそのメッセージは永続化されます。
    フィルター
    ブローカーへの接続時に使用されるユーザー名。
    Max Consumers
    一度にキューにアクセスできるコンシューマーの最大数。
    Purge when no consumers
    選択した場合、コンシューマーが接続されていない場合にキューがパージされます。
  4. Create Queue をクリックします。

    キューが作成されます。これは、バインドされるアドレスの下にあるフォルダーツリーからアクセスできます。アドレスのキューは Queues フォルダーに編成されます。Queues フォルダー内で、キューはルーティングタイプ(MULTICAST および ANYCAST)によってさらに編成されます。

    この例では、clusterQueue キューは clusterQueue アドレス内に配置されています。

    フォルダーツリーの AMQ Console Queue
2.5.4.4. キューのステータスの確認

チャートは、ブローカーのキューのステータスのリアルタイムビューを提供します。

手順

  1. フォルダーツリーで、キューに移動します。

    アドレスの複数のキューのチャートを表示するには、キューが含まれる ANYCAST または MULTICAST フォルダーを選択します。

  2. ナビゲーションバーで drop-down icon ドロップダウンアイコンをクリックして、Chart をクリックします。

    チャートは、すべてのキューの属性のリアルタイムデータを表示します。

    AMQ コンソールチャート
  3. 必要に応じて、チャートに異なる基準を選択します。

    1. ナビゲーションバーで drop-down icon ドロップダウンアイコンをクリックして、Edit Chart をクリックします。
    2. 属性 一覧で、チャートに追加する属性を 1 つ以上選択します。複数の属性を選択するには、Ctrl キーを押して保持し、各属性を選択します。
    3. View Chart ボタンをクリックします。チャートは選択した基準に基づいて表示されます。
2.5.4.5. キューの参照

キューを参照すると、キュー内のすべてのメッセージが表示されます。また、リストをフィルタリングしてソートして、特定のメッセージを見つけることもできます。

手順

  1. フォルダーツリーで、キューに移動します。

    キューは、バインドされるアドレス内にあります。

  2. ナビゲーションバーで drop-down icon ドロップダウンアイコンをクリックして、Browse をクリックします。

    キューのメッセージが表示されます。デフォルトでは、最初の 200 メッセージが表示されます。

    AMQ Console Browse Queue
  3. 特定のメッセージまたはメッセージのグループを参照するには、以下のいずれかを行います。

    以下を行う場合以下を行います​

    メッセージ一覧をフィルターします。

    Filter messages テキストフィールドにフィルター条件を入力し、Enter を押します。

    メッセージ一覧を並べ替えます。

    メッセージの一覧で、列ヘッダーをクリックします。メッセージを降順に並び替えるには、ヘッダーを 2 回クリックします。

  4. メッセージの内容を表示するには、メッセージ ID をクリックします。

    メッセージヘッダー、プロパティー、およびボディーを表示できます。

2.5.4.6. キューへのメッセージの送信

キューの作成後、メッセージを送信できます。以下の手順は、メッセージを既存のキューに送信するのに必要な手順の概要を説明します。

手順

  1. フォルダーツリーで、メッセージを送信するキューを選択します。
  2. ナビゲーションバーで drop-down icon ドロップダウンアイコンをクリックして、Send をクリックします。

    メッセージを作成するページが表示されます。

    AMQ Console がメッセージをキューに送信する
  3. 必要な場合は、Header ボタンをクリックしてメッセージヘッダー情報を追加します。
  4. メッセージのボディーを入力します。
  5. Payload format ドロップダウンメニューで、メッセージのボディーのフォーマットのオプションを選択し、Auto format をクリックします。メッセージ本文は、選択した形式向けに人間が判読できるスタイルでフォーマットされます。
  6. Send message をクリックします。メッセージは送信されます。
  7. 追加のメッセージを送信するには、入力した情報のいずれかを変更し、Send message をクリックします。
2.5.4.7. キューへのメッセージの再送信

以前送信されたメッセージを再送信できます。

手順

  1. 再送信するメッセージを参照します。
  2. 再送信するメッセージの横にあるチェックボックスをクリックします。
  3. Resend ボタンをクリックします。メッセージが表示されます。
  4. 必要に応じて メッセージヘッダーとボディー を更新し、Send message をクリックします。
2.5.4.8. 別のキューへのメッセージの移動

キュー内の 1 つ以上のメッセージを別のキューに移動できます。

手順

  1. 移動するメッセージを参照します
  2. 移動する各メッセージの横にあるチェックボックスをクリックします。
  3. Move ボタンをクリックします。

    確認ダイアログボックスが表示されます。

    AMQ Console Move Message
  4. メッセージを 移動 するキューの名前を入力してから Move をクリックします。
2.5.4.9. キューの削除

キューからキューを削除したり、すべてのメッセージをパージしたりすることができます。

手順

  1. 削除またはパージするキューを参照します
  2. 次のいずれかを行います。

    以下を行う場合以下を行います​

    キューからメッセージを削除します。

    1. 削除する各メッセージの横にあるチェックボックスをクリックします。
    2. Delete ボタンをクリックします。

    キューからすべてのメッセージをパージします。

    1. ナビゲーションバーで、Delete をクリックします。
    2. Purge queue ボタンをクリックします。

    キューの削除

    1. ナビゲーションバーで、Delete をクリックします。
    2. Delete queue ボタンをクリックします。

第3章 コマンドラインインターフェースの使用

コマンドラインインターフェース (CLI) は、対話式ターミナルを使用してメッセージブローカーとの対話を可能にします。ブローカーアクションの管理、メッセージの設定、および CLI を使用して便利なコマンドを入力します。

コマンドラインインターフェース (CLI) により、対話プロセスを使用してユーザーおよびロールをファイルに追加できます。

3.1. ブローカーインスタンスの起動

ブローカーインスタンスは、ログやデータファイルなどのすべての設定およびランタイムデータが含まれるディレクトリーです。ランタイムデータは一意のブローカープロセスに関連付けられます。

artemis スクリプトを Linux サービスまたは Windows サービスとして使用することで、フォアグラウンドでブローカーを起動することができます。

3.1.1. ブローカーインスタンスの起動

ブローカーインスタンスの作成後に、artemis run コマンドを使用して起動します。

手順

  1. インストール時に作成したユーザーのアカウントに切り替えます。

    $ su - amq-broker
  2. artemis run コマンドを使用してブローカーインスタンスを起動します。

    $ /var/opt/amq-broker/mybroker/bin/artemis run
    
              __  __  ____    ____            _
        /\   |  \/  |/ __ \  |  _ \          | |
       /  \  | \  / | |  | | | |_) |_ __ ___ | | _____ _ __
      / /\ \ | |\/| | |  | | |  _ <| '__/ _ \| |/ / _ \ '__|
     / ____ \| |  | | |__| | | |_) | | | (_) |   <  __/ |
    /_/    \_\_|  |_|\___\_\ |____/|_|  \___/|_|\_\___|_|
    
    Red Hat JBoss AMQ 7.2.1.GA
    
    10:53:43,959 INFO  [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server
    10:53:44,076 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=./data/journal,bindingsDirectory=./data/bindings,largeMessagesDirectory=./data/large-messages,pagingDirectory=./data/paging)
    10:53:44,099 INFO  [org.apache.activemq.artemis.core.server] AMQ221012: Using AIO Journal
    ...

    ブローカーが起動し、以下の情報が含まれるログ出力が表示されます。

    • トランザクションログとクラスター設定の場所。
    • メッセージの永続性に使用されるジャーナルのタイプ (この場合は AIO)。
    • クライアント接続を許可できる URI。

      デフォルトでは、ポート 61616 はサポートされるプロトコル (CORE、MQTT、AMQP、STOMP、HORNETQ、および OPENWIRE) からの接続を受け入れることができます。各プロトコルには個別のポートもあります。

    • Web コンソールは、http://localhost:8161 から入手できます。
    • Jolokia サービス (JMX over REST) には、http://localhost:8161/jolokia からアクセスできます。

3.1.2. Linux サービスとしてブローカーの起動

ブローカーが Linux にインストールされている場合は、サービスとして実行できます。

手順

  1. /etc/systemd/system/ディレクトリにamq-broker.serviceファイルを新規に作成します。
  2. 以下のテキストをファイルにコピーします。

    ブローカーインスタンスの作成時に提供される情報に応じて、パスおよびユーザーフィールドを変更します。以下の例では、ユーザーamq-brokerが、/var/opt/amq-broker/mybroker/ディレクトリの下にインストールされたブローカーサービスを起動します。

    [Unit]
    Description=AMQ Broker
    After=syslog.target network.target
    
    [Service]
    ExecStart=/var/opt/amq-broker/mybroker/bin/artemis run
    Restart=on-failure
    User=amq-broker
    Group=amq-broker
    
    # A workaround for Java signal handling
    SuccessExitStatus=143
    
    [Install]
    WantedBy=multi-user.target
  3. Open a terminal.
  4. 以下のコマンドを使用してブローカーサービスを有効にします。

    sudo systemctl enable amq-broker
  5. 以下のコマンドを使用してブローカーサービスを実行します。

    sudo systemctl start amq-broker

3.1.3. Windows サービスとしてブローカーの起動

ブローカーが Windows にインストールされている場合は、サービスとして実行できます。

手順

  1. コマンドプロンプトを開いてコマンドを入力する
  2. 以下のコマンドを使用して、ブローカーをサービスとしてインストールします。

    <broker-instance-dir>\bin\artemis-service.exe install
  3. 以下のコマンドを使用してサービスを起動します。

    <broker-instance-dir>\bin\artemis-service.exe start
  4. (オプション) サービスをアンインストールします。

    <broker-instance-dir>\bin\artemis-service.exe uninstall

3.2. ブローカーインスタンスの停止

ブローカーインスタンスを手動で停止するか、ブローカーを正常にシャットダウンするように設定します。

3.2.1. ブローカーインスタンスの停止

stop コマンドを実行してブローカーを手動で 停止 します。コマンドを入力するとすぐに、ブローカーへの接続がすべて強制的に停止され、シャットダウンプロセスが開始します。

手順

  • ブローカーを停止します。

    • Linux でブローカーを実行している場合は、以下のコマンドを実行します。

      <broker-instance-dir>\bin\artemis stop
    • Windows でブローカーをサービスとして実行している場合は、以下のコマンドを実行します。

      <broker-instance-dir>\bin\artemis-service.exe stop

3.2.2. ブローカーインスタンスの正常な停止

手動シャットダウンは、stop コマンドを入力すると、すべてのクライアントを強制的に切断します。別の方法として、graceful-shutdown-enabled設定要素を使用して、ブローカーが正常にシャットダウンするように設定します。

graceful-shutdown-enabledtrueに設定されている場合、stopコマンドが入力された後、新しいクライアントの接続は許可されません。ただし、シャットダウンプロセスを開始する前に、既存の接続はクライアント側で閉じることができます。graceful-shutdown-enabledのデフォルト値はfalseです。

graceful-shutdown-timeout構成要素を使用して、接続がブローカー側から強制的に閉じられる前にクライアントが切断する時間の長さをミリ秒単位で設定します。すべての接続が閉じられると、シャットダウンプロセスが開始します。graceful-shutdown-timeoutを使用する利点の1つは、クライアントの接続によるシャットダウンの遅延を防ぐことができることです。graceful-shutdown-timeoutのデフォルト値は-1で、これは、クライアントが切断するまでブローカーが無期限に待機することを意味します。

以下の手順は、タイムアウトを使用する正常なシャットダウンを設定する方法を示しています。

手順

  1. 設定ファイル <broker-instance-dir>\etc\broker.xml を開きます。
  2. graceful-shutdown-enabled設定要素を追加し、値をtrueに設定します。

    <configuration>
         <core>
              ...
              <graceful-shutdown-enabled>
                  true
              </graceful-shutdown-enabled>
              ...
         </core>
    </configuration>
  3. graceful-shutdown-timeout設定要素を追加し、タイムアウトの値をミリ秒単位で設定します。以下の例では、stop コマンドが実行されてから 30 秒 (30000 ミリ秒) 後に、クライアント接続が強制的に閉じられます。

    <configuration>
         <core>
              ...
              <graceful-shutdown-enabled>
                  true
              </graceful-shutdown-enabled>
              <graceful-shutdown-timeout>
                  30000
              </graceful-shutdown-timeout>
              ...
         </core>
    </configuration>

3.3. パケットをインターセプトしてメッセージの監査

ブローカーの出入力または終了パケットをインターセプトして、パケットの監査またはメッセージのフィルターを行います。インターセプターは、インターセプトするパケットを変更します。これによりインターセプターは強力になりますが、危険にさらされる可能性もあります。

ビジネス要件を満たすためのインターセプターを開発します。インターセプターはプロトコル固有であるため、適切なインターフェースを実装する必要があります。

インターセプターは、ブール値を返す intercept() メソッドを実装する必要があります。値が true の場合、メッセージパケットは続行されます。false の場合、プロセスは中止され、他のインターセプターは呼び出されず、メッセージパケットはこれ以上処理されません。

3.3.1. インターセプターの作成

インターセプターは、傍受するパケットを変更できます。独自の受信インターセプターおよび発信インターセプターを作成できます。すべてのインターセプターはプロトコル固有で、サーバーに出入りするパケットに対して呼び出されます。これにより、監査パケットなどのビジネス要件を満たすインターセプターを作成できます。

インターセプターとその依存関係は、ブローカーの Java クラスに配置する必要があります。デフォルトではクラスパスの一部であるため、<broker-instance-dir>/lib ディレクトリーを使用できます。

以下の例は、渡された各パケットのサイズをチェックするインターセプターを作成する方法を示しています。

注記

この例では、プロトコルごとに特定のインターフェースを実装します。

手順

  1. 適切なインターフェースを実装し、そのintercept()メソッドをオーバーライドします。

    1. AMQPプロトコルを使用している場合は、org.apache.activemq.artemis.protocol.amqp.broker.AmqpInterceptorインターフェースを実装してください。

      package com.example;
      
      import org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage;
      import org.apache.activemq.artemis.protocol.amqp.broker.AmqpInterceptor;
      import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
      
      public class MyInterceptor implements AmqpInterceptor
      {
        private final int ACCEPTABLE_SIZE = 1024;
      
        @Override
        public boolean intercept(final AMQPMessage message, RemotingConnection connection)
        {
          int size = message.getEncodeSize();
          if (size <= ACCEPTABLE_SIZE) {
            System.out.println("This AMQPMessage has an acceptable size.");
            return true;
          }
          return false;
        }
      }
    2. Core プロトコルを使用している場合は、インターセプターは org.apache.artemis.activemq.api.core.Interceptor インターフェースを実装する必要があります。

      package com.example;
      
      import org.apache.artemis.activemq.api.core.Interceptor;
      import org.apache.activemq.artemis.core.protocol.core.Packet;
      import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
      
      public class MyInterceptor implements Interceptor
      {
        private final int ACCEPTABLE_SIZE = 1024;
      
        @Override
        boolean intercept(Packet packet, RemotingConnection connection)
        throws ActiveMQException
        {
          int size = packet.getPacketSize();
          if (size <= ACCEPTABLE_SIZE) {
            System.out.println("This Packet has an acceptable size.");
            return true;
          }
          return false;
        }
      }
    3. MQTTプロトコルを使用している場合は、org.apache.activemq.artemis.core.protocol.mqtt.MQTTInterceptorインターフェースを実装してください。

      package com.example;
      
      import org.apache.activemq.artemis.core.protocol.mqtt.MQTTInterceptor;
      import io.netty.handler.codec.mqtt.MqttMessage;
      import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
      
      public class MyInterceptor implements Interceptor
      {
        private final int ACCEPTABLE_SIZE = 1024;
      
        @Override
        boolean intercept(MqttMessage mqttMessage, RemotingConnection connection)
        throws ActiveMQException
        {
          byte[] msg = (mqttMessage.toString()).getBytes();
          int size = msg.length;
          if (size <= ACCEPTABLE_SIZE) {
            System.out.println("This MqttMessage has an acceptable size.");
            return true;
          }
          return false;
        }
      }
    4. Stomp プロトコルを使用している場合は、org.apache.activemq.artemis.core.protocol.stomp.StompFrameInterceptor インターフェースを実装します。

      package com.example;
      
      import org.apache.activemq.artemis.core.protocol.stomp.StompFrameInterceptor;
      import org.apache.activemq.artemis.core.protocol.stomp.StompFrame;
      import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
      
      public class MyInterceptor implements Interceptor
      {
        private final int ACCEPTABLE_SIZE = 1024;
      
        @Override
        boolean intercept(StompFrame stompFrame, RemotingConnection connection)
        throws ActiveMQException
        {
          int size = stompFrame.getEncodedSize();
          if (size <= ACCEPTABLE_SIZE) {
            System.out.println("This StompFrame has an acceptable size.");
            return true;
          }
          return false;
        }
      }

3.3.2. インターセプターを使用するためのブローカーの設定

前提条件

  • インターセプタークラスを作成し、そのクラス (およびその依存関係) をブローカーの Java クラスパスに追加します。デフォルトではクラスパスの一部であるため、<broker-instance-dir>/lib ディレクトリーを使用できます。

手順

  1. <broker-instance-dir>/etc/broker.xml を開きます
  2. _<broker-instance-dir>/etc/broker.xml に設定を追加して、インターセプターを使用するようにブローカーを設定します。

    1. インターセプターが着信メッセージを対象としている場合は、そのclass-nameremoting-incoming-interceptors のリストに追加します。

      <configuration>
        <core>
          ...
          <remoting-incoming-interceptors>
             <class-name>org.example.MyIncomingInterceptor</class-name>
          </remoting-incoming-interceptors>
          ...
        </core>
      </configuration>
    2. インターセプターが発信メッセージを対象としている場合は、そのclass-nameremoting-outgoing-interceptorsのリストに追加します。

      <configuration>
        <core>
          ...
          <remoting-outgoing-interceptors>
             <class-name>org.example.MyOutgoingInterceptor</class-name>
          </remoting-outgoing-interceptors>
        </core>
      </configuration>

3.3.3. クライアントサイドのインターセプター

クライアントはインターセプターを使用して、クライアントからサーバーに送信したパケットを、またはサーバーがクライアントへインターセプトできます。ブローカー側のインターセプターが false の値を返す場合、他のインターセプターは呼び出されず、クライアントは追加のパケットを処理しません。このプロセスは、発信パケットが blocking 方式で送信されない限り、透過的に行われます。この場合、呼び出し元にActiveMQExceptionがスローされます。スローされたActiveMQExceptionには、false値を返したインターセプターの名前が含まれています。

サーバーでは、クライアントインターセプタークラスとその依存関係を適切にインスタンス化および呼び出すには、クライアントの Java クラスに追加する必要があります。

3.4. コマンドラインツール

AMQ Broker にはコマンドラインインターフェース (CLI) ツールのセットが含まれるため、メッセージングジャーナルを管理できます。以下の表は、各ツールの名前と対応する説明を一覧表示しています。

ツール説明

address

ツールグループのアドレス指定(create/delete/update/show) (例: ./artemis address create)

ブラウザー

インスタンスのメッセージを参照します。

consumer

インスタンスでメッセージを消費します。

data

ジャーナルレコードとデータの圧縮に関するレポートを出力します。

decode

エンコードから内部ジャーナル形式をインポートします。

encode

String にエンコードされるジャーナルの内部形式を示しています。

exp

特別な XML 形式および独立した XML 形式を使用して、メッセージデータをエクスポートします。

help

ヘルプ情報を表示します。

imp

exp によって提供された出力を使用して、ジャーナルを稼働中のブローカーにインポートします。

kill

--allow-kill で開始するブローカーインスタンスを強制終了します。

mask

パスワードをマスクし、これを出力します。

perf-journal

現在のデータフォルダーで使用する journal-buffer タイムアウトを計算します。

queue

キューのツールグループ (create/delete/update/stat) (例: ./artemis queue create)

run

ブローカーインスタンスを実行します。

stop

ブローカーインスタンスを停止します。

user

デフォルトのファイルベースのユーザー管 (add/rm/list/reset) (例: ./artemis user list)

各ツールで利用可能なコマンドの全一覧については、help パラメーターの後にツール名を使用してください。たとえば、以下の例で CLI 出力には、ユーザーが ./artemis help data コマンドを入力すると、data ツールで利用可能なコマンドがすべて表示されます。

$ ./artemis help data

NAME
        artemis data - data tools group
        (print|imp|exp|encode|decode|compact) (example ./artemis data print)

SYNOPSIS
        artemis data
        artemis data compact [--broker <brokerConfig>] [--verbose]
                [--paging <paging>] [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]
        artemis data decode [--broker <brokerConfig>] [--suffix <suffix>]
                [--verbose] [--paging <paging>] [--prefix <prefix>] [--file-size <size>]
                [--directory <directory>] --input <input> [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]
        artemis data encode [--directory <directory>] [--broker <brokerConfig>]
                [--suffix <suffix>] [--verbose] [--paging <paging>] [--prefix <prefix>]
                [--file-size <size>] [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]
        artemis data exp [--broker <brokerConfig>] [--verbose]
                [--paging <paging>] [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]
        artemis data imp [--host <host>] [--verbose] [--port <port>]
                [--password <password>] [--transaction] --input <input> [--user <user>]
        artemis data print [--broker <brokerConfig>] [--verbose]
                [--paging <paging>] [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]

COMMANDS
        With no arguments, Display help information

        print
            Print data records information (WARNING: don't use while a
            production server is running)

        ...

各コマンドを実行する方法の詳細については、help パラメーターを使用します。たとえば、CLI は、ユーザーが ./artemis help data print の入力後に data print コマンドに関する詳細情報を一覧表示します。

$ ./artemis help data print

NAME
        artemis data print - Print data records information (WARNING: don't use
        while a production server is running)

SYNOPSIS
        artemis data print [--bindings <binding>] [--journal <journal>]
                [--paging <paging>]

OPTIONS
        --bindings <binding>
            The folder used for bindings (default ../data/bindings)

        --journal <journal>
            The folder used for messages journal (default ../data/journal)

        --paging <paging>
            The folder used for paging (default ../data/paging)

第4章 管理 API の使用

AMQ Broker には、ブローカーの設定変更、新規リソースの作成 (アドレスやキューなど) の作成、これらのリソース (現在のキューに現在保持されるメッセージ数など) を検査し、それらと対話する (たとえば、キューからメッセージを削除するために使用できる) 豊富な管理 API があります。

さらに、クライアントは管理 API を使用してブローカーを管理し、管理通知にサブスクライブできます。

4.1. 管理 API を使用した AMQ Broker の管理方法

管理 API を使用してブローカーを管理する方法は 2 つあります。

  • JMX (JMX) の使用は、Java アプリケーションを管理する標準的な方法です。
  • JMS メッセージと AMQ JMS クライアントを使用して JMS APIListenerExternalmanagement 操作を使用するとブローカーに送信されます。

ブローカーを管理する方法は 2 つありますが、各 API は同じ機能をサポートします。JMX を使用してリソースを管理する可能性がある場合は、JMS メッセージおよび AMQ JMS クライアントを使用して同じ結果を実現することもできます。

この選択は、特定の要件、アプリケーション設定、および環境によって異なります。管理操作の呼び出し方法に関係なく、管理 API は同じになります。

管理対象リソースごとに、このタイプのリソースに対して呼び出すことができる Java インターフェースが存在します。ブローカーは、org.apache.activemq.artemis.api.core.managementパッケージで管理されたリソースを公開します。管理操作を呼び出す方法は、JMX メッセージまたは JMS メッセージと AMQ JMS クライアントが使用されるかどうかによって異なります。

注記

管理操作によっては、操作の影響を受けるメッセージを選択するために filter パラメーターが必要なものもあります。null または空の文字列を渡すと、すべてのメッセージ で管理操作が実行されることを意味します。

4.2. JMX を使用した AMQ ブローカーの管理

JMX (Java Management Extensions) を使用してブローカーを管理できます。管理 API は、MBean インターフェースを使用してブローカーによって公開されます。ブローカーは、リソースをドメイン org.apache.activemq に登録します。

たとえば、exampleQueueという名前のキューを管理するためのObjectNameは次のとおりです。

org.apache.activemq.artemis:broker="__BROKER_NAME__",component=addresses,address="exampleQueue",subcomponent=queues,routingtype="anycast",queue="exampleQueue"

MBean は以下のようになります。

org.apache.activemq.artemis.api.management.QueueControl

MBeanのObjectNameは、ヘルパークラスorg.apache.activemq.artemis.api.core.management.ObjectNameBuilder.を使って構築されます。jconsole を使用して、管理する MBean の ObjectName を見つけることもできます。

JMX を使用したブローカーの管理は、JMX を使用した Java アプリケーションの管理と同じです。これは、リフレクションまたは MBean のプロキシーを作成して実行できます。

4.2.1. JMX 管理の設定

デフォルトでは、JMX はブローカーの管理に有効になっています。JMX管理を有効または無効にするには、broker.xml構成ファイルでjmx-management-enabledプロパティを設定します。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. <jmx-management-enabled>を設定します。

    <jmx-management-enabled>true</jmx-management-enabled>

    JMX が有効になっている場合、ブローカーは jconsole を使用してローカルで管理できます。

    注記

    セキュリティー上の理由から、JMX へのリモート接続はデフォルトで有効になっていません。

  3. 同じ MBeanServer から複数のブローカーを管理する場合は、各ブローカーに JMX ドメインを設定します。

    デフォルトでは、ブローカーはJMXドメインorg.apache.activemq.artemisを使用します。

    <jmx-domain>my.org.apache.activemq</jmx-domain>
    注記

    WindowsシステムでAMQ Brokerを使用している場合は、artemisまたはartemis.cmdでシステムプロパティを設定する必要があります。シェルスクリプトは <install-dir>/bin にあります。

関連情報

  • リモート管理用のブローカーの設定に関する詳細は、Oracle の Java Management Guide を参照してください。

4.2.2. MBeanServer の設定

ブローカーがスタンドアロンモードで動作しているときは、Java仮想マシンのPlatform MBeanServerを使用してMBeansを登録します。デフォルトでは、Jolokia もデプロイされ、REST を使用した MBean サーバーへのアクセスを許可します。

4.2.3. Jolokia で JMX を公開する方法

デフォルトでは、AMQ Broker には Web アプリケーションとしてデプロイされた Jolokia HTTP エージェントが同梱されます。Jolokia は、MBean を公開する HTTP ブリッジ上のリモート JMX です。

注記

Jolokia を使用するには、ユーザーは <broker-instance-dir>/etc/artemis.profile 設定ファイルの hawtio.role システムプロパティーによって定義されたロールに属している必要があります。デフォルトでは、このロールは amq です。

例4.1 Jolokia を使用したブローカーのバージョンのクエリー

この例では、Jolokia REST URL を使用してブローカーのバージョンを検索します。

$ curl http://admin:admin@localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker=\"0.0.0.0\"/Version
{"request":{"mbean":"org.apache.activemq.artemis:broker=\"0.0.0.0\"","attribute":"Version","type":"read"},"value":"2.4.0.amq-710002-redhat-1","timestamp":1527105236,"status":200}

関連情報

4.2.4. JMX 管理通知のサブスクライブ

お使いの環境で JMX が有効になっている場合は、管理通知にサブスクライブできます。

手順

  • ObjectName org.apache.activemq.artemis:broker="<broker-name>" にサブスクライブします。

関連情報

4.3. JMS API を使用した AMQ ブローカーの管理

Java Message Service (JMS) API を使用すると、メッセージの作成、送信、受信、読み取りが可能です。JMS および AMQ JMS クライアントを使用してブローカーを管理できます。

4.3.1. JMS メッセージおよび AMQ JMS クライアントを使用したブローカー管理の設定

JMS を使用してブローカーを管理するには、まず manage パーミッションでブローカーの管理アドレスを設定する必要があります。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. <management-address>要素を追加し、管理アドレスを指定します。

    デフォルトでは、管理アドレスは queue.activemq.management です。デフォルトを使用しない場合は、別のアドレスを指定する必要があります。

    <management-address>my.management.address</management-address>
  3. 管理アドレスに manage ユーザーパーミッションタイプを指定します。

    このパーミッションタイプにより、管理アドレスの管理メッセージが受信および処理できるようになります。

    <security-setting-match="queue.activemq.management">
        <permission-type="manage" roles="admin"/>
    </security-setting>

4.3.2. JMS API および AMQ JMS クライアントを使用したブローカーの管理

JMS メッセージを使用して管理操作を呼び出すには、AMQ JMS クライアントは特別な管理キューをインスタンス化する必要があります。

手順

  1. QueueRequestorを作成して、管理アドレスにメッセージを送信し、返信を受信します。
  2. Messageを作成します。
  3. ヘルパークラスorg.apache.activemq.artemis.api.jms.management.JMSManagementHelperを使用して、メッセージに管理プロパティを記入します。
  4. QueueRequestorを使ってメッセージを送信します。
  5. ヘルパークラスorg.apache.activemq.artemis.api.jms.management.JMSManagementHelperを使用して、管理応答から操作結果を取得します。

例4.2 キュー内のメッセージ数の表示

以下の例は、JMS API を使用して JMS キュー exampleQueue でメッセージの数を表示する方法を示しています。

Queue managementQueue = ActiveMQJMSClient.createQueue("activemq.management");

QueueSession session = ...
QueueRequestor requestor = new QueueRequestor(session, managementQueue);
connection.start();
Message message = session.createMessage();
JMSManagementHelper.putAttribute(message, "queue.exampleQueue", "messageCount");
Message reply = requestor.request(message);
int count = (Integer)JMSManagementHelper.getResult(reply);
System.out.println("There are " + count + " messages in exampleQueue");

4.4. 管理操作

JMX または JMS メッセージを使用して AMQ Broker を管理する場合でも、同じ API 管理操作を使用できます。管理 API を使用すると、ブローカー、アドレス、およびキューを管理できます。

4.4.1. ブローカー管理操作

管理 API を使用してブローカーを管理できます。

キューの一覧表示、作成、デプロイ、破棄

デプロイされたキューのリストは、getQueueNames()メソッドで取得できます。

キューは、ActiveMQServerControl の管理操作 createQueue()deployQueue()、または destroyQueue() を使用して作成または破棄できます (ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" またはリソース名 server を使用)。

deployQueue が何もしない間、キューがすでに存在する場合、createQueue は失敗します。

キューの一時停止および再開
QueueControlは、基礎となるキューを一時停止したり、再開したりすることができます。キューが一時停止すると、メッセージは受信されますが、配信されません。再開すると、キューに格納されたメッセージの配信を開始します (存在する場合)。
リモート接続の一覧表示および閉じる

listRemoteAddresses()を使って、クライアントのリモートアドレスを取得します。また、closeConnectionsForAddress()メソッドを使って、リモートアドレスに関連する接続を閉じることも可能です。

または、listConnectionIDs() を使用して接続 ID を一覧表示し、listSessions() を使用して指定の接続 ID の全セッションを一覧表示します。

トランザクションの管理

ブローカーがクラッシュした場合、ブローカーの再起動時に一部のトランザクションを手動で介入する必要がある場合があります。以下の方法を使用して、発生した問題を解決します。

listPreparedTransactions() メソッドリストを使用して、準備済み状態のトランザクションを一覧表示します(トランザクションは不透明な Base64 文字列として表されます)。

commitPreparedTransaction()またはrollbackPreparedTransaction()を使用して、指定された準備済みトランザクションをコミットまたはロールバックし、ヒューリスティックトランザクションを解決します。

listHeuristicCommittedTransactions() メソッドおよび listHeuristicRolledBackTransactions メソッドを使用して、ヒューリスティックに完了したトランザクションを一覧表示します。

メッセージカウンターの有効化およびリセット

enableMessageCounters()またはdisableMessageCounters()メソッドを使用して、メッセージカウンターを有効または無効にします。

resetAllMessageCounters()メソッドとresetAllMessageCounterHistories()メソッドを使用して、メッセージカウンターをリセットします。

ブローカー設定および属性の取得
ActiveMQServerControlは、そのすべての属性(たとえば、ブローカーのバージョンを取得するためのgetVersion()メソッドなど)を通じて、ブローカーの設定を公開します。
コアブリッジおよび迂回の一覧表示、作成、破棄

デプロイされた Core Bridge を一覧表示し、getBridgeNames()getDivertNames() メソッドをそれぞれ使用して迂回します。

ActiveMQServerControlで、createBridge()destroyBridge()またはcreateDivert()destroyDivert()を使用するブリッジと迂回を使用して、作成または破棄します(ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" またはリソース名 serverを使用)。

ブローカーを停止し、現在割り当てられているクライアントでフェイルオーバーを強制する

ActiveMQServerControlforceFailover()を使用します(ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" またはリソース名 serverを使用)。

注記

このメソッドは実際にブローカーを停止するため、エラーが発生する可能性が高くなります。正確なエラーは、メソッドの呼び出しに使用した管理サービスによって異なります。

4.4.2. アドレス管理操作

管理 API を使用してアドレスを管理できます。

アドレスの管理には、ObjectName org.apache.activemq.artemis:broker="<broker-name>", component=addresses,address="<address-name>"またはリソース名address.<address-name>AddressControlクラスを使用します。

addRole()メソッドやremoveRole()メソッドを使って、アドレスのロールやパーミッションを変更します。getRoles() メソッドで、キューに関連付けられたすべてのロールを一覧表示できます。

4.4.3. キュー管理操作

管理 API を使用してキューを管理できます。

コア管理 API はキューを処理します。QueueControlクラスは、キューの管理操作を定義します (ObjectName,org.apache.activemq.artemis:broker="<broker-name>",component=addresses,address="<bound-address>",subcomponent=queues,routing-type="<routing-type>",queue="<queue-name>" またはリソース名queue.<queue-name>を使用)。

キューの管理操作のほとんどは、単一のメッセージ ID (単一のメッセージを削除するなど) またはフィルター (指定のプロパティーですべてのメッセージを期限切れにするなど) を取ります。

期限切れで、デッドレターアドレスに送信し、メッセージの移動

expireMessages()メソッドを使用して、キューのメッセージを失効させます。期限切れアドレスが定義されている場合、メッセージはそのアドレスに送信されます。それ以外のメッセージは破棄されます。キューの有効期限アドレスは、setExpiryAddress() メソッドで設定できます。

sendMessagesToDeadLetterAddress() メソッドを使用して、デッドレターアドレスにメッセージを送信します。デッドレターアドレスに送信されるメッセージの数を返します。デッドレターアドレスが定義されていない場合、メッセージはキューから削除され、破棄されます。キューのデッドレターアドレスは setDeadLetterAddress() メソッドで設定できます。

moveMessages() メソッドを使用して、メッセージをあるキューから別のキューに移動します。

メッセージの一覧表示と削除

listMessages()メソッドを使用して、あるキューからメッセージを一覧表示します。Map の配列 (各メッセージに対して1つのMap) を返します。

removeMessages() メソッドを使用してキューからメッセージを削除します。これは、単一のメッセージ ID バリアントの boolean、またはフィルターバリアントの削除されたメッセージの数を返します。このメソッドは、filter 引数を取り、フィルターされたメッセージのみを削除します。フィルターを空の文字列に設定すると、すべてのメッセージが削除されます。

メッセージのカウント
キューに入っているメッセージの数は、getMessageCount()メソッドで返されます。または、countMessages() は指定のフィルターに一致するキュー内のメッセージの数を返します。
メッセージの優先度の変更
メッセージの優先度は、単一のメッセージIDバリアントのbooleanまたはフィルターバリアントの更新されたメッセージの数を返すchangeMessagesPriority()メソッドを使用して変更できます。
メッセージカウンター
メッセージカウンタは、listMessageCounter()およびlistMessageCounterHistory()メソッドを使用して、キューに対して一覧表示することができます(「メッセージカウンターの使用」を参照)。メッセージカウンターは、resetMessageCounter()メソッドを使って、1つのキューに対してリセットすることもできます。
キュー属性の取得
QueueControl は、属性を使用してキュー設定を公開します(たとえば、キューのフィルターが作成されている場合はこれを取得するためにgetFilter()を使用、キューが永続的かどうかを知るためにはisDurable()を使用など)。
キューの一時停止および再開
QueueControlは、基礎となるキューを一時停止したり、再開したりすることができます。キューが一時停止すると、メッセージは受信されますが、配信されません。再開すると、キューに格納されたメッセージの配信を開始します (存在する場合)。

4.4.4. リモートリソース管理操作

管理 API を使用してブローカーのリモートリソース(アクセプター、迂回、ブリッジなど)を起動および停止し、ブローカーを完全に停止せずに特定の期間にオフラインにすることができます。

アクセプター
start()または を使用してアクセプターを 起動または停止 します。AcceptorControlクラスのstop()メソッド(ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=acceptors,name="<acceptor-name>" またはリソース名 acceptor.<address-name>を使用)。アクセプターパラメーターは、AcceptorControl 属性を使用して取得できます。アクセプターの詳細は、「 Network Connections: Acceptors and Connectors 」を参照してください。
Diverts
DivertControlクラスのstart()またはstop()メソッドを使用して、ダイバートを開始または停止します(ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=diverts,name="<divert-name>"またはリソース名divert.<divert-name>を使用)。迂回パラメーターは、DivertControl 属性を使用して取得できます。
ブリッジ
start() (リスピン) を使って、ブリッジを開始または停止します。stop())メソッド( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=bridge,name=" <bridge-name> " またはリソース名 bridge. < bridge-name>) ブリッジのパラメータは、BridgeControl属性を使って取得することができます。
ブロードキャストグループ
BroadcastGroupControl クラスの start() または stop() メソッドを使用して、ブロードキャストグループを開始または停止します (ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=broadcast-group,name="<broadcast-group-name>" またはリソース名 broadcastgroup.<broadcast-group-name> を使用)。ブロードキャストグループのパラメータは、BroadcastGroupControl属性を使って取得することができます。詳細は 、ブローカー検出メソッド を参照してください。
検出グループ
DiscoveryGroupControlクラスのstart()またはstop()メソッドを使用して、ディスカバリーグループを開始または停止します (ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=discovery-group,name="<discovery-group-name>" またはリソース名 discovery.<discovery-group-name>を使用)。ディスカバリーグループのパラメータは、DiscoveryGroupControl属性を使って取得することができます。詳細は 、ブローカー検出メソッド を参照してください。
クラスター接続
ClusterConnectionControlクラスのstart()またはstop()メソッドを使用して、クラスタ接続を開始または停止します(h the ObjectName org.apache.activemq.artemis:broker="<broker-name>",component=cluster-connection,name="<cluster-connection-name>" またはリソース名 clusterconnection.<cluster-connection-name>を使用)。クラスター接続パラメーターは、ClusterConnectionControl 属性を使用して取得できます。詳細は、ブローカークラスターの作成を参照してください。

4.5. 管理通知

以下は、あらゆる種類の通知とメッセージにあるヘッダーの一覧です。すべての通知には、_AMQ_NotifType(カッコ内に示されている値)と_AMQ_NotifTimestampヘッダがあります。タイムスタンプは、java.lang.System.currentTimeMillis() への呼び出しの結果で、フォーマットされていません。

通知タイプHeaders

BINDING_ADDED (0)

_AMQ_Binding_Type

_AMQ_Address

_AMQ_ClusterName

_AMQ_RoutingName

_AMQ_Binding_ID

_AMQ_Distance

_AMQ_FilterString

BINDING_REMOVED (1)

_AMQ_Address

_AMQ_ClusterName

_AMQ_RoutingName

_AMQ_Binding_ID

_AMQ_Distance

_AMQ_FilterString

CONSUMER_CREATED (2)

_AMQ_Address

_AMQ_ClusterName

_AMQ_RoutingName

_AMQ_Distance

_AMQ_ConsumerCount

_AMQ_User

_AMQ_RemoteAddress

_AMQ_SessionName

_AMQ_FilterString

CONSUMER_CLOSED (3)

_AMQ_Address

_AMQ_ClusterName

_AMQ_RoutingName

_AMQ_Distance

_AMQ_ConsumerCount

_AMQ_User

_AMQ_RemoteAddress

_AMQ_SessionName

_AMQ_FilterString

SECURITY_AUTHENTICATION_VIOLATION (6)

_AMQ_User

SECURITY_PERMISSION_VIOLATION (7)

_AMQ_Address

_AMQ_CheckType

_AMQ_User

DISCOVERY_GROUP_STARTED (8)

name

DISCOVERY_GROUP_STOPPED (9)

name

BROADCAST_GROUP_STARTED (10)

name

BROADCAST_GROUP_STOPPED (11)

name

BRIDGE_STARTED (12)

name

BRIDGE_STOPPED (13)

name

CLUSTER_CONNECTION_STARTED (14)

name

CLUSTER_CONNECTION_STOPPED (15)

name

ACCEPTOR_STARTED (16)

factory

id

ACCEPTOR_STOPPED (17)

factory

id

PROPOSAL (18)

_JBM_ProposalGroupId

_JBM_ProposalValue

_AMQ_Binding_Type

_AMQ_Address

_AMQ_Distance

PROPOSAL_RESPONSE (19)

_JBM_ProposalGroupId

_JBM_ProposalValue

_JBM_ProposalAltValue

_AMQ_Binding_Type

_AMQ_Address

_AMQ_Distance

CONSUMER_SLOW (21)

_AMQ_Address

_AMQ_ConsumerCount

_AMQ_RemoteAddress

_AMQ_ConnectionName

_AMQ_ConsumerName

_AMQ_SessionName

4.6. メッセージカウンターの使用

メッセージカウンターを使用して、キューについての情報を経時的に取得します。これは、特に確認が困難な傾向を特定するのに役立ちます。

たとえば、メッセージカウンターを使用して、特定のキューが時間とともにどのように使用されるかを決定できます。また、管理 API を使用してキュー内のメッセージ数に対して一定間隔でクエリーを試行することもできますが、キューがどのように使用されているかを示すことはできません。キュー内のメッセージ数は、クライアントが送信または受信されないか、キューに送信されたメッセージの数が消費されるメッセージの数と等しくないため、定数を維持できます。どちらの場合も、キュー内のメッセージ数は、非常に異なる方法で使用される場合でも同じになります。

4.6.1. メッセージカウンターのタイプ

メッセージカウンターは、ブローカーのキューに関する追加情報を提供します。

count
ブローカーが起動してからキューに追加されたメッセージの合計数。
countDelta
最後のメッセージカウンターの更新以降にキューに追加されたメッセージの数。
messageCount
キューの現在のメッセージ数。
messageCountDelta
最後のメッセージカウンターの更新以降にキューから追加/削除されたメッセージの合計数。たとえば、messageCountDelta-10 の場合、全部で 10 個のメッセージがキューから削除されました。
lastAddTimestamp
メッセージが最後にキューに追加されたタイムスタンプ。
udpateTimestamp
最後のメッセージカウンター更新のタイムスタンプ。
注記

メッセージカウンターを組み合わせて、他の意味のあるデータも判断できます。たとえば、最後の更新以降にキューから消費されたメッセージの数を正確に知るには、countDelta から messageCountDelta を減算します。

4.6.2. メッセージカウンターの有効化

メッセージカウンターはブローカーのメモリーに若干影響を与える可能性があるため、デフォルトでは無効になっています。メッセージカウンターを使用するには、まずメッセージカウンターを有効にする必要があります。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. メッセージカウンターを有効にします。

    <message-counter-enabled>true</message-counter-enabled>
  3. メッセージカウンター履歴およびサンプリング期間を設定します。

    <message-counter-max-day-history>7</message-counter-max-day-history>
    <message-counter-sample-period>60000</message-counter-sample-period>
    message-counter-max-day-history
    キューメトリクスを保存する必要のある日数。デフォルトは 10 日です。
    message-counter-sample-period
    メトリクスを収集するためにブローカーがキューをサンプリングする頻度 (ミリ秒単位)。デフォルトは 10000 ミリ秒(10 秒)です。

4.6.3. メッセージカウンターの取得

管理 API を使用してメッセージカウンターを取得できます。

前提条件

手順

  • 管理 API を使用してメッセージカウンターを取得します。

    // Retrieve a connection to the broker's MBeanServer.
    MBeanServerConnection mbsc = ...
    JMSQueueControlMBean queueControl = (JMSQueueControl)MBeanServerInvocationHandler.newProxyInstance(mbsc,
       on,
       JMSQueueControl.class,
       false);
    
    // Message counters are retrieved as a JSON string.
    String counters = queueControl.listMessageCounter();
    
    // Use the MessageCounterInfo helper class to manipulate message counters more easily.
    MessageCounterInfo messageCounter = MessageCounterInfo.fromJSON(counters);
    System.out.format("%s message(s) in the queue (since last sample: %s)\n",
    messageCounter.getMessageCount(),
    messageCounter.getMessageCountDelta());

関連情報

第5章 Prometheus を使用したブローカーランタイムデータの監視

5.1. 概要

AMQ Broker の Prometheus プラグインを使用し、ブローカーのランタイムメトリックを監視および保存して、ブローカーインスタンスの正常性とパフォーマンスを監視できます。Prometheus は、大規模でスケーラブルなシステムを監視し、長期間に履歴ランタイムデータを保存するために構築されたソフトウェアです。AMQ Broker Prometheus プラグインは、ブローカーのランタイムメトリックを Prometheus 形式にエクスポートし、Prometheus 自体を使用してデータのクエリを視覚化および実行できるようにします。

Grafana などのグラフィカルツールを使用して、Prometheus プラグインが収集するメトリクスをさらに詳細にわたり視覚化する設定や、ダッシュボードの設定も行うことができます。

AMQ Broker では、プラグインによって Prometheus 形式にエクスポートされたメトリクスを以下に示します。各メトリクスの説明は、メトリクス自体とともにエクスポートされます。

ブローカーメトリクス

  • address.memory.usage
  • connection.count
  • total.connection.count

アドレスメトリクス

  • routed.message.count
  • unrouted.message.count

キューメトリクス

  • consumer.count
  • delivering.durable.message.count
  • delivering.durable.persistent.size
  • delivering.message.count
  • delivering.persistent.size
  • durable.message.count
  • durable.persistent.size
  • messages.acknowledged
  • messages.added
  • message.count
  • messages.killed
  • messages.expired
  • persistent.size
  • scheduled.durable.message.count
  • scheduled.durable.persistent.size
  • scheduled.message.count
  • scheduled.persistent.size

上記にリストされていない上位レベルのブローカーメトリクスについては、下位レベルのメトリクスを集計することで算出できます。たとえば、メッセージの合計数を算出するには、ブローカーデプロイメントのすべてのキューから message.count メトリクスを集約できます。

Java 仮想マシン(JVM)メモリーメトリクスも Prometheus 形式にエクスポートされます。

5.2. AMQ Broker の Prometheus プラグインの有効化

AMQ Broker のインストール時に、Prometheus プラグインはインストールに含まれ、使用用にすでに設定されています。ただし、ブローカー設定でプラグインを有効にする必要があります。

以下の手順では、Prometheus プラグインを有効にし、実行中のブローカーインスタンスのメトリクスの収集を開始する方法を説明します。

手順

  1. AMQ Broker 7.4 で抽出したアーカイブからブローカーインスタンスの lib ディレクトリーに、Prometheus メトリクスプラグイン .jar ファイルをコピーします。

    $ cp amq-broker-7.4.0/lib/artemis-prometheus-metrics-plugin-1.0.0.CR1-redhat-00002.jar BROKER_INSTANCE_DIR/lib
  2. 以下の行を broker.xml 設定ファイルに追加します。

    <metrics-plugin class-name="org.apache.activemq.artemis.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/>

Prometheus プラグインを有効にすると、起動するブローカーに対して、プラグインは直前のセクションに記載されているメトリクスの収集を開始します。

5.3. Prometheus を使用したブローカーランタイムデータへのアクセス

前提条件

  • Prometheus プラグインによって収集されるブローカーランタイムデータをクエリーおよび可視化するには、Prometheus をインストールする必要があります。詳細は、「 Prometheus のインストール 」を参照してください。

手順

  1. Prometheusをインストールしたディレクトリで、prometheus.yml設定ファイルを開きます。
  2. 設定ファイルのstatic_configsセクションで、targets要素をlocalhost:8161に変更します。この場所は、ブローカーが Web サーバーを実行する場所です。デフォルトでは、/metrics はこのホスト名に追加され、ブローカー Web サーバーに保存されているメトリクスへの完全パスを形成します。
  3. Prometheus プラグインによって収集されるブローカーランタイムメトリクスを表示するには、Web ブラウザーで localhost:8161/metrics を開きます。

    生成される Web ページで、ブローカーに設定したキューおよびアドレスに基づいて、プラグインによって収集されるメトリクスの現在の値が表示されます。JVM に複数の実行中のブローカーインスタンスがある場合、各ブローカーのメトリクスが表示されます。

  4. Prometheus インストールディレクトリーから、Prometheus を実行します。

    $ ./prometheus

    Prometheus が起動すると、シェル出力に以下の行が含まれます。

    component=web, msg=”Start listening for connections” address=0.0.0.0:9090

    上記の行は、Prometheus がポート 9090 で HTTP トラフィックをリッスンしていることを示しています。

  5. Prometheus Web コンソールにアクセスするには、Web ブラウザーで 127.0.0.1:9090 を開きます。
  6. Prometheus Web コンソールで、Expression フィールドを使用して、ブローカーデータにクエリーを作成できます。作成するクエリーは、Prometheus クエリー言語 PromQL に基づいています。クエリーの挿入に使用できるブローカーメトリクスは Insert metric ドロップダウンリストにあります。

    簡単な例として、DLQ キューのメッセージ数を経時的にクエリーするとします。この場合、メトリクスのドロップダウンリストからartemis_message_countを選択します。DLQ キュー名とアドレスを指定してクエリーを完了します。このクエリーの例を以下に示します。

    artemis_message_count{address=“DLQ”, queue=“DLQ”}

    さらに高度な視覚化を行うには、正規表現を使用して、複数のメトリクスをオーバーレイする複雑なクエリーを作成できます。または、多数のメトリクスで数学的な操作 (集計など) を実行することもできます。Prometheus クエリーの作成に関する詳細は、「Prometheus のクエリー」を参照 てください。

改訂日時: 2022-09-08 15:59:21 +1000

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.