Red Hat AMQ Broker 7.8 のリリースノート


Red Hat AMQ 2020.Q4

AMQ Broker のリリースノート

概要

本リリースノートには、AMQ Broker 7.8 リリースに含まれる新機能、改良された機能、修正、および問題に関する最新情報が含まれています。

第1章 AMQ Broker 7.8 の長期サポート

AMQ Broker 7.8 は長期サポート (LTS) リリースバージョンとして指定されています。バグ修正およびセキュリティーアドバイザリーは、少なくとも 12 カ月間、一連のマイクロリリース (7.8.1、7.8.2 など) で AMQ Broker 7.8 で利用できます。

つまり、新しいマイナーリリースにアップグレード することなく、AMQ Broker の最新のバグ修正およびセキュリティーアドバイザリーを取得できます。

LTS リリースストリームに関する以下の重要なポイントに注意してください。

  • LTS リリースストリームでは、バグ修正のみが提供されます。このストリームには新しい機能拡張は追加されません。
  • サポート対象の設定を維持するには、LTS リリースストリームの最新マイクロリリースにアップグレードする必要があります。
  • LTS バージョンは、AMQ Broker 7.8.0 GA のリリースから少なくとも 12 カ月間サポートされます。

Red Hat Enterprise Linux および OpenShift Container Platform のサポート

AMQ Broker 7.8 LTS バージョンは以下をサポートします。

  • Red Hat Enterprise Linux 6、7、および 8
  • OpenShift Container Platform 3.11、4.5、および 4.6

Red Hat Enterprise Linux および OpenShift Container Platform のサポートに関して、以下の重要な点に留意してください。

  • AMQ Broker 7.8 は、Red Hat Enterprise Linux 6 および OpenShift Container Platform 3.11 をサポートする 最新 バージョンです。
  • Red Hat は、AMQ Broker 7.8 が OpenShift Container Platform の 今後の バージョン (つまり 4.7 以降) でサポートされることを保証する訳では ありません

AMQ Broker 7.8 LTS マイクロリリースで解決された問題の詳細は、「AMQ 7 Broker - 7.8.x Resolved Issues」を参照してください。

第2章 機能拡張

ここでは、AMQ Broker 7.8 で主要な機能拡張および新機能強調について説明します。このリリースの機能拡張の完全リストは、「AMQ Broker 7.8.0 Enhancements」を参照してください。

新しいバージョンの AMQ 管理コンソール
AMQ Broker 7.8 には、新しいバージョンの AMQ 管理コンソールが含まれています。コンソールの使用に関する詳細は、『AMQ Broker の管理』の「AMQ 管理コンソールの使用」を参照してください。
新しいデータベース認定
AMQ Broker 7.8 では PostgreSQL 11.5 および MySQL 8 のサポートが追加されました。異なるバージョンの AMQ Broker でサポートされるデータベースの詳細は、「Red Hat AMQ 7 でサポートされる構成」を参照してください。
アドレスおよびキューのフェデレーション
AMQ Broker 7.8 では、アドレスおよびキューのフェデレーションを設定できます。フェデレーションにより、ブローカーを共通のクラスターに入れることなく、ブローカー間のメッセージの転送が可能になります。たとえば、フェデレーションは、メッセージをあるクラスターから別のクラスターへ確実に送信するのに適しています。この送信は、大規模なエリアネットワーク (WAN)、クラウドインフラストラクチャーの リージョン、またはインターネット上である可能性があります。詳細は、『AMQ Broker の設定』の「アドレスおよびキューのフェデレーション」を参照してください。
キューの無効化
AMQ Broker 7.8 では、ブローカー設定で定義したキューを無効にできます。たとえば、クライアントがサブスクライブできるようにキューを定義しますが、メッセージのルーティングにキューを使用する準備ができていません。または、キューにメッセージフローを停止しつつも、クライアントをキューにバインドしたままにすることもできます。このような場合は、キューを無効にすることができます。詳細は、『AMQ Broker の設定』の「キューの無効化」を参照してください。
キューの垂直スケーリングに関するパフォーマンスの向上
AMQ Broker 7.8 では、デプロイメントが多数のキューに自動的にスケーリングされる場合に、ブローカーのパフォーマンスを改善するスケーラビリティーが追加されました。この改善はサポートされるすべてのプロトコルに適用されますが、大規模デプロイメントで使用される MQTT に特に有益です。このパフォーマンスの改良点は、キューの数が 非常に 多い (例: 50,000 以上) ブローカーデプロイメントで最も顕著です。
アドレス設定を使用した Operator ベースのブローカーデプロイメントの更新
AMQ Broker 7.8 では、すでに実行されている Operator ベースのブローカーデプロイメントにアドレス設定を追加できるようになりました。ブローカーデプロイメントのカスタムリソース (CR) インスタンスにアドレス設定を含めるサポートは AMQ Broker 7.7 に追加されました。ただし、7.7 では、ブローカーデプロイメントを初めて作成する際に、アドレスの設定が必要になります。アドレス、キュー、およびアドレス設定についての詳細は、『OpenShift での AMQ Broker のデプロイ』の「Operator ベースのブローカーデプロイメントのアドレスおよびキューの設定」を参照してください。
ベース監査ロガーへの追加
アドレスの一時停止および再開時にベース監査ロガーがログに記録されるようになりました。ロギングの設定方法は、『AMQ Broker の設定』の「ロギング」を参照してください。
ブローカーアドレスのメモリ使用率の新しいメトリック
7.8 では、AMQ Broker の Prometheus メトリックスプラグインは artemis_address_memory_usage_percentage という名前の新規メトリックをエクスポートします。このメトリックスは、global-max-size パラメーターの値をパーセンテージとして、ブローカーのすべてのアドレスによって使用される合計アドレスメモリーです。Prometheus メトリックスプラグインの設定方法については、『AMQ Broker の管理』の「ブローカーランタイムメトリックスの監視」を参照してください。
迂回の構成の改善
7.8 では、AMQ Management Console または管理 API を使用してライブブローカーでランタイム迂回を設定する場合、その迂回は自動的にバックアップブローカーに伝播されます。これは、以前のリリースには当てはまりませんでした。
カスタムの Init Container イメージの指定
7.8 の Operator の最新バージョンは、Init Container と呼ばれる特殊なコンテナーを使用してブローカー構成を生成します。デフォルトで、Operator はビルトインの Init Container イメージを使用します。ただし、ビルトインの Init Container によって作成される設定を修正または追加するカスタムの Init Container イメージを指定することもできます。詳細は、『OpenShift での AMQ Broker のデプロイ』の「カスタムの Init Container イメージの指定」を参照してください。
複数コンテナープラットフォームの Operator サポート

7.8 では、AMQ Broker Operator は以下のコンテナープラットフォームをサポートします。

  • OpenShift Container Platform
  • IBM Z 上の OpenShift Container Platform
  • IBM Power Systems 上の OpenShift Container Platform

IBM Power Systems での OpenShift Container Platform の Operator サポートが新たに 7.8 に追加されました。AMQ Broker 7.5 の Operator のバージョンは、IBM Z で OpenShift Container Platform をサポートします。

7.5 では、サポートされるプラットフォームごとに 個別の バージョンの Operator をインストールし、デプロイする必要があります。7.8 では、3 つのコンテナープラットフォームすべてをサポートする 単一の バージョンのみをインストールする必要があります。使用しているコンテナープラットフォームに基づいて、Operator はデプロイメントで使用するブローカーコンテナーイメージを自動的に選択します。

Operator の最新バージョンをインストールする方法については、『OpenShift での AMQ Broker のデプロイ』の以下のセクションを参照してください。

Operator によるブローカーコンテナーイメージの自動選択
7.8 の Operator の最新版で、カスタムリソース (CR) インスタンスを使用してブローカーデプロイメントを作成する場合は、CR にブローカーコンテナーイメージ名を明示的に指定する必要がなくなりました。代わりに、CR をデプロイする際に、Operator は使用する適切なブローカーコンテナーイメージを自動的に判別します。これは、ブローカー設定を生成する Init Container にも適用されます。詳細は、『OpenShift での AMQ Broker のデプロイ』の「Operator によるコンテナーイメージの選択方法」を参照してください。
RHEL 8 Operator

Red Hat Integration - AMQ Broker for RHEL 8(Multiarch) という名前の Operator は、x86_64 プラットフォーム、IBM Z、および IBM Power Systems で利用できます。以下のチャンネルをサポートします。

  • 7.x - このチャンネルは利用可能な場合に 7.9 に更新されます。
  • 7.8.x - Long Term Support (LTS) チャンネルです。

選択する Operator を判別するには、「Red Hat Enterprise Linux Container Compatibility Matrix」を参照してください。

Operator チャンネル

7.8 の最新バージョンの Operator では、以下の新しい更新チャンネルが Red Hat Integration - AMQ Broker Operator で利用できます。

  • 7.x - これは、非推奨となった 現在の チャンネルと同等です。
  • 7.8.x - Long Term Support (LTS) チャンネルです。
Operator のバージョン管理
7.8 の Operator の最新版で、Operator は AMQ Broker と同じバージョン管理スキームを導入するようになりました。たとえば、x86_64 プラットフォーム上の以前の Operator リリースは、OperatorHub のバージョン 0.19 で、そのバージョンが 7.8.2-opr-1 に更新されています。
ドキュメントの更新
AMQ ブローカーのドキュメントが更新され、新しい Operators とチャンネル、ならびに IBMZ および IBMPowerSystems のサポートに関する指示が提供されます。

関連情報

第3章 非推奨の機能

ここでは、AMQ Broker で非推奨となった機能について説明します。

Hawtio のディスパッチコンソールプラグイン
7.3 以降、AMQ Broker には Hawtio ディスパッチコンソールプラグインである dispatch-hawtio-console.war に同梱されなくなりました。以前のバージョンでは、AMQ Interconnect の管理にディスパッチコンソールを使用していました。ただし、AMQ Interconnect は独自のスタンドアロン Web コンソールを使用するようになりました。
ネットワーク pinger
7.5 以降では、ネットワークの ping は非推奨にされています。ネットワークの ping は、ネットワークの分離の問題からブローカークラスターを保護することができません。これにより、修復不能なメッセージが失われることがあります。この機能は今後のリリースで削除されます。Red Hat では、ネットワークの ping を使用する既存の AMQ Broker デプロイメントは引き続きサポートされます。ただし、Red Hat は、新しいデプロイメントでネットワーク ping を使用することは推奨しません。高可用性を確保するためにブローカークラスターを設定し、ネットワーク分離の問題を回避するには、『AMQ Broker の設定』の「高可用性の実装」を参照してください。
OpenShift Container Platform 上の AMQ Broker のアプリケーションテンプレート
7.8 より、OpenShift Container Platform に AMQ Broker をデプロイするのにアプリケーションテンプレートを使用する機能は非推奨になりました。この機能は今後のリリースで削除されます。Red Hat では、アプリケーションテンプレートに基づく既存のデプロイメントのサポートを続けています。ただし、Red Hat は、新規デプロイメントにアプリケーションテンプレートを使用することは推奨していません。新規デプロイメントについては、Red Hat は AMQ Broker Operator を使用することを推奨します。Operator のインストールおよびデプロイに関する詳細は、『Deploying AMQ Broker on OpenShift』の「AMQ Broker Operator を使用した OpenShift Container Platform での AMQ Broker のデプロイ」を参照してください。

第4章 テクノロジープレビュー

ここでは、AMQ Broker 7.8 のテクノロジープレビュー機能について説明します。

重要

テクノロジープレビュー機能は、Red Hat の実稼働サービスレベルアグリーメント (SLA) でサポートされておらず、機能的に完全でない可能性があります。Red Hat は、実稼働環境での使用は推奨していません。詳細は、「テクノロジープレビュー機能のサポート範囲」を参照してください。

AMQP サーバー接続
AMQ Broker 7.8 では、ブローカーは AMQP プロトコルを使用して他のエンドポイントへの接続を開始できます。たとえば、ブローカーは他の AMQP サーバーに接続できること (必ずしも AMQ Broker のインスタンスではない) や、これらのコネクションで要素を作成することを意味します。詳細は、Apache ActiveMQ Artemis ドキュメントの「ブローカー接続」を参照してください。
Fuse Console でのブローカーの表示

Operator ベースのブローカーのデプロイメントを、AMQ Management Console ではなく OpenShift に Fuse Console を使用するように設定できます。ブローカーのデプロイメントを適切に設定すると、Fuse Console はブローカーを検出し、専用の Artemis タブに表示されます。詳細は、『OpenShift での AMQ Broker のデプロイ』の「Fuse Console でのブローカーの表示」を参照してください。

注記

Fuse Console でのブローカーの表示は、Fuse 7.8 のテクノロジープレビューの機能です。

第5章 修正された問題

このセクションでは、AMQ Broker7.8 で修正された一連の主な問題について説明します。リリースで修正された問題の完全リストは、AMQ Broker 7.8.0 の修正済み問題 および AMQ 7 Broker - 7.8.x の解決済みの問題 を参照してください。

  • ENTMQBR-1815 - 自動更新での Hawtio ビューの変更

    以前のバージョンでは、自動更新が有効な場合に Hawtio コンソールは 5 秒ごとに画面を更新していました。この動作により、ビューが Attributes タブに切り替わり、表示されていたその他のタブからフォーカスが失われました。この問題は解決されています。

  • ENTMQBR-2890 - サイズが n > 1 の CR インスタンスを作成すると、n 番目の ブローカー Pod が 1 度起動し、即座に再起動する

    以前のバージョンでは、カスタムリソース (CR) インスタンスを使用して AMQ ブローカーオペレーターを使用してブローカークラスターをデプロイした場合、デプロイの最後のブローカー Pod (CR の size プロパティーによって決定される) が開始し、その後、すぐに一度再起動しないと使用可能になりませんでした。この問題は解決されています。デプロイメント内のブローカー Pod は、再起動する前に使用可能になります。

  • ENTMQBR-3059 - AMQ Broker Operator:Operator doesn't pick up CR name after restart / update(Operator が再起動/更新後に CR 名を選択しない)

    以前のバージョンでは、永続性およびメッセージ移行を使用するように設定されている 2 つ以上のブローカーのクラスター化ブローカーデプロイメントを作成した場合、メッセージ移行用にスケールダウンコントローラーをインスタンス化する際に、AMQ Broker Operator は無効な名前を生成する可能性がありました。具体的には、Operator が再起動するか、またはそのイメージがブローカーデプロイメントのスケールダウン前に更新された場合に、この問題が発生します。この状況の結果、ブローカーデプロイメントを削除し、再作成する必要がありました。この問題は解決されています。

  • ENTMQBR-3514 - AMQ Broker Operator:ブローカーがインスタンス化された前にアドレス CR が送信される場合、アドレスは作成されません。

    以前のバージョンでは、Operator ベースのブローカーのデプロイメントの場合、ブローカーがインスタンス化される前にアドレスのカスタムリソース (CR) インスタンスを作成している場合、Operator はアドレスの作成に失敗しました。この問題は解決されています。

  • ENTMQBR-3578 - AMQ Broker Operator:起動時に既存の CR インスタンスをベースラインとして使用して先に進むための Operator サポートはありません。

    以前のバージョンでは、AMQ Broker Operator の起動時に、プロジェクトの既存のカスタムリソース (CR) インスタンスをチェックしませんでした。この動作は、Operator を再起動する必要がある場合に (新規 Operator イメージのバージョンを適用するなど)、Operator およびブローカーデプロイメントが同期されなくなったことを意味します。この場合は、ブローカーデプロイメントを削除し、再作成する必要があります。この問題は解決されています。

  • ENTMQBR-3587 - 重大な IO エラーでシャットダウン時に通知を回避する

    以前のバージョンでは、重大な IO エラーが原因で自身をシャットダウンすると、ブローカーはディスク IO をトリガーする複数の通知を生成していました。これらの通知は、ブローカーのシャットダウンを遅らせたり、イベントが妨げたりする可能性があります。この問題は解決されています。

  • ENTMQBR-3617 - 永続性アドレスの hawtio コンソールのユーザー情報が null である

    以前のバージョンでは、コンシューマーが共有の永続サブスクリプションを作成すると、AMQ 管理コンソールで、ブローカーによって自動作成されたサブスクリプションキューの null として関連付けられたユーザーが表示される可能性がありました。この問題は解決されています。

  • ENTMQBR-3692 - 永続性アドレスの hawtio コンソールのユーザー情報が null である

    以前のバージョンでは、メッセージ駆動 Bean (MDB) が ActiveMQ Java Connector Architecture (JCA) リソースアダプターを使用して永続トピックサブスクリプションを作成すると、MDB はデプロイに失敗していました。この問題は解決されています。

  • ENTMQBR-3705 - LVQ で非破壊の場合、既存のコンシューマーにメッセージを配信しない

    以前のバージョンでは、コンシューマーが共有の永続アドレスを作成すると、AMQ 管理コンソールは関連するユーザーを null と表示する可能性がありました。この問題は解決されています。

  • ENTMQBR-3710 - キュー再開時の不正な監査メッセージ

    以前のバージョンでは、一時停止してキューを再開すると、監査ロガーに、再開イベントを別の一時停止イベントとして説明したテキストが誤って含まれていました。以下は例になります。

    2020-07-09 11:18:00,352 [AUDIT](qtp795748540-39) AMQ601213: User amq(amq)@192.168.100.1:40858 is resuming on target resource: QueueImpl[name=helloworld, postOffice=PostOfficeImpl
    2020-07-09 11:18:00,352 [AUDIT](qtp795748540-39) AMQ601721: User amq(amq)@192.168.100.1:40858 has paused queue helloworld
    Copy to Clipboard Toggle word wrap

    この問題は解決されています。

  • ENTMQBR-3719 - LegacyLDAPSecuritySettingPlugin により、新しいユーザーが新しく作成された宛先にアクセス可能になる

    以前のバージョンでは、新しいパーミッションが LDAP に追加されると、LegacyLDAPSecuritySettingPlugin プラグインが、デフォルトのセキュリティー一致を変更するために新規のパーミッションを使用していました。これにより、既存のユーザーの認証が破損する可能性があります。この問題は解決されています。

  • ENTMQBR-3726 - JVM プロパティー hawtio.role が空白およびハイフンを含むロールを解析しない

    以前のバージョンでは、artemis.profile ファイルが、空白またはハイフンを含む hawtio.role プロパティーを定義すると、プロパティーが適切に機能しませんでした。この問題は解決されています。

  • ENTMQBR-3744 - デフォルト/ゼロ以外の consumer-window-size によるグループのリバランスを有効にすると、メッセージの消費が順不同になる可能性がある

    以前のバージョンでは、接続しているコンシューマーがゼロよりも大きい consumerWindowSize の値を使用している場合 (つまり、メッセージがこれらのクライアント上でバッファーに事前フェッチされている)、および (group-rebalance または default-group-rebalancetrue に設定することで) ブローカーがグループのリバランスを使用するように設定すると、メッセージの消費が順不同になる可能性がありました。この問題は解決されています。

  • ENTMQBR-3752 - バックアップブローカーがマスターとの接続を再確立できない

    ネットワークが停止した場合に、ライブバックアップグループの両方のブローカーを同時に稼働させることができます (ネットワーク分離 または スプリットブレイン と呼ばれる状況)。以前のバージョンでは、このような状況が発生すると、接続済みの AMQ Core Protocol JMS クライアントは誤ったブローカートポロジー情報を受け取っていました。その結果、ネットワークおよびスプリットブレインの問題が解決すると、クライアントは適切なブローカーに再接続できませんでした。この問題を回避するには、クライアントを再起動する必要があります。この問題は解決されています。

  • ENTMQBR-3782 - page-max-concurrent-io を無効にすることができない

    以前のバージョンでは、page-max-concurrent-io の値を -1 に設定して、ページングで許容される同時読み取り数の上限を削除することができませんでした。代わりに、ブローカーはデフォルト値の使用を継続し、デフォルトから変更している場合は、以前に設定した値を使用します。この問題は解決されています。

  • ENTMQBR-3797 - アクティベーションに失敗すると、ゾンビブローカーが発生する場合がある

    以前のリリースでは、ライブバックアップブローカーグループが共有ストアの高可用性を使用するように設定されている場合、ライブブローカーは再起動後に適切にアクティブにならない可能性がありましたが、ジャーナルロックの保持を継続していました。たとえば、ライブバックアップグループがネットワークファイルシステム (NFS) を使用していて、NFS が予期せず停止または削除され、ライブブローカーが再起動すると、この問題が発生する可能性があります。この状況では、クライアントにサービスを提供できず、バックアップブローカーをアクティブ化できなかったブローカーが機能しなくなっていました。この問題は解決されています。

  • ENTMQBR-3798 - JDBC XML 構成はカスタムのパスワードコーデックを使用できない

    以前のバージョンでは、jdbc-password パラメーターのマスクされたパスワードと、ブローカー設定の password-codec パラメーターのカスタムコーディックを指定すると、ブローカーは常にデフォルトの org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec コーディックを使用してパスワードをデコードしていました。この問題は解決されています。

  • ENTMQBR-3812 - キューを破棄し同時にデページングする際に発生する可能性のあるデッドロック

    以前のバージョンでは、キューが破棄された (非永続コンシューマーがその接続を切断した場合など)、同時にデページングが行われると、デッドロック状態が発生する可能性がありました。この問題は解決されています。

  • ENTMQBR-3813 - キュー更新時の Null ポインター例外

    以前のバージョンでは、フィルターなしで作成されたキューを更新しようとすると、ブローカーが null ポインター例外 (NPE) を表示する可能性がありました。この問題は解決されています。

  • ENTMQBR-3841 - 同時 Jolokia 操作により、artemis-roles.properties または artemis-users.properties が誤って更新される場合がある

    以前のバージョンは、ユーザーおよびロールまたはパーミッションを操作する複数の同時 Jolokia 操作がブローカーで行われた場合、ブローカーが artemis-roles.properties または artemis-users.properties 構成ファイルの一部のデータを誤って更新または削除する可能性がありました。この問題は解決されています。

  • ENTMQBR-3880 - ページング中にワイルドカードアドレスの Destination ヘッダーが置き換えられる

    以前のバージョンでは、メッセージを保存する前に、ブローカーは、ページストア名を反映するようにメッセージの address フィールドを設定していました。メッセージが、ワイルドカードアドレス式を使用してサブスクライブしたコンシューマーに最初にページングされると、他のコンシューマーが処理できない誤った宛先名のヘッダーが作成されていました。この問題は解決されています。ブローカーが、メッセージをページストアに書き込む際にメッセージの内容を変更しなくなりました。これにより、元のターゲットアドレスはそのまま残ります。

  • ENTMQBR-4034 - 再起動後に LVQ が破損する

    以前のバージョンでは、ブローカーの再起動後、last-value キューにある既存のメッセージは、同じ last-value キーを持つキューに送信される新しいメッセージに置き換えられませんでした。この問題は解決されています。

  • ENTMQBR-4143 - AMQ Broker Operator:CRD と Operator 間の pageSizeBytes プロパティーのタイプ不一致。

    以前のリリースでは、addressSettings.addressSetting セクションを追加することで、ブローカーデプロイメントのカスタムリソース (CR) インスタンスにアドレス設定を追加した場合に、pageSizeBytes プロパティーを含めることができませんでした。このプロパティーを含めて値を指定すると、Operator が CR の処理に失敗したか、CR を処理したにもかかわらずブローカーを開始できた可能性があります。この問題は解決されています。

  • ENTMQBR-4144: AMQ Broker Operator:アドレス設定の redeliveryCollisionAvoidanceFactor を指定できない

    以前のリリースでは、(addressSettings.addressSetting セクションを追加することで) ブローカーデプロイメントのカスタムリソース (CR) インスタンスにアドレス設定を追加した場合に、redeliveryCollisionAvoidanceFactor プロパティーを使用することができませんでした。このプロパティーを含めて値を指定すると、Operator は CR の処理に失敗しました。この問題は解決されています。

  • ENTMQBR-4145 - AMQ Broker Operator:アドレス設定 autoCreateJmsTopics は指定できません

    以前のリリースでは、(addressSettings.addressSetting セクションを追加することで) ブローカーデプロイメントのカスタムリソース (CR) インスタンスにアドレス設定を追加した場合に、autoCreateJmsTopics プロパティーを使用することができませんでした。このプロパティーを含めて値を指定すると、Operator は CR を処理しましたが、結果のブローカー構成にプロパティーを含めることができませんでした。この問題は解決されています。

  • ENTMQBR-4146 - アドレス設定で default-group-rebalance-pause-dispatch プロパティーが指定されていると、ブローカーの起動に失敗する

    以前のバージョンでは、default-group rebalance-pause-dispatch プロパティーの値を true に設定するように broker.xml 設定ファイルの address-setting 要素を設定した場合は、ブローカーが起動できませんでした。

    この問題は、OpenShift Container Platform でのブローカーデプロイメントでも発生しました。具体的には、(addressSettings.addressSetting セクションを追加することで) ブローカーデプロイメントのカスタムリソース (CR) インスタンスにアドレス設定を追加した場合に、defaultGroupRebalancePauseDispatch プロパティーの値を true に設定すると、デプロイメントのブローカーを開始できませんでした。

    この問題は解決されています。

  • ENTMQBR-4159 - AMQ Broker Operator:STOMP プロトコル用にルートが作成されない

    以前のリリースでは、アクセプターを定義して STOMP プロトコルを使用するものの、アクセプターが使用するポートを指定していない場合、Operator はアクセプターのサービスとルートを作成できませんでした。この問題は解決されています。

  • ENTMQBR-4195: AMQ ブローカー再起動後に、削除されているスケジュールされたメッセージが再表示される

    以前のリリースでは、管理 API を使用してスケジュールされたメッセージを削除すると、メッセージはメモリーから削除されますが、ストレージからは削除されませんでした。これにより、ブローカーを再起動する際にメッセージが再表示されていました。この問題は解決されています。

  • ENTMQBR-4263 - DLQ がブローカーをシャットダウンするまでメッセージが大きくなる

    以前のバージョンでは、特定のプロトコルのメッセージがそのプロトコルに構成された大きなメッセージサイズに近く、ブローカーがメッセージをデッドレターキューに配信しようとした場合に、ブローカーが予期せずシャットダウンする可能性がありました。この問題は解決されています。

関連情報

第6章 修正された Common Vulnerabilities and Exposures (CVE)

ここでは、AMQ Broker 7.8 リリースで修正された Common Vulnerabilities and Exposures (CVE) について詳しく説明します。

  • ENTMQBR-3755 - CVE-2020-13932 - mqtt-client: activemq: Web コンソールダイアグラムプラグインのリモート XSS [amq-7]
  • ENTMQBR-3382 - CVE-2015-5183 Hawtio:HttpOnly および Secure 属性が Cookie に設定されていない [amq-7]
  • ENTMQBR-4037 - CVE-2019-12749 - DBusServer DBUS_COOKIE_SHA1 認証バイパス
  • ENTMQBR-4068 - CVE-2019-9827 - hawtio: URI の最初の /proxy/ サブストリングを介したサーバー側のリクエストの偽造 [amq-7.7.0]
  • ENTMQBR-4158 - CVE-2020-27216 - jetty: ローカルの一時ディレクトリーのハイジャックの脆弱性 [amq-7]

第7章 既知の問題

ここでは、AMQ Broker 7.8 の既知の問題について説明します。

  • ENTMQBR-17 - AMQ222117:クラスター接続を開始できない

    IPv6 をサポートする環境では、ブローカークラスターが適切に初期化に失敗することがあります。この失敗は、ログメッセージ Can’t assign requested address で示される SocketException が原因となります。この問題を回避するには、java.net.preferIPv4Stack システムプロパティーを true に設定します。

  • ENTMQBR-463 - クラスタリング設定の属性に順序の制約がある。エラーメッセージを改善するか、単に順序を無視した方がいい

    現時点で、クラスター接続設定の要素の順序は特定の順序で行う必要があります。回避策は、設定スキーマの順序に従うことです。

  • ENTMQBR-520: 別のアドレスにバインドされたキューと同じ名前のアドレスからの受信は許可されるべきではない

    アドレスと同じ名前のキューは、アドレスにのみ割り当てる必要があります。既存のアドレスと同じ名前で、異なる名前のアドレスにバインドされるキューを作成することは、無効な構成です。これを実行すると、誤ったメッセージがキューにルーティングされる可能性があります。

  • ENTMQBR-522 - シャットダウン時に一時ファイルを削除する際のウィンドウ書き込みの問題で実行されているブローカー

    Windows では、ブローカーはシャットダウン時に一時ファイルを正常にクリーンアップしません。この問題により、シャットダウンプロセスが遅くなりました。さらに、ブローカーによって削除されない一時ファイルが、時間の経過と共に累積されます。

  • ENTMQBR-569 - ID を OpenWire から AMQP へ変換すると、ID をバイナリーとして送信する

    A-MQ 6 OpenWire クライアントから AMQP クライアントに相互プロトコルを通信する場合、追加の情報はアプリケーションメッセージプロパティーにエンコードされます。これは、ブローカーによって内部で使用される無害な情報であり、無視することができます。

  • ENTMQBR-599 - Artemis cli によるトラストストアおよびキーストアを定義する

    --ssl-key--ssl-key-password--ssl-trust、および --ssl-trust-password パラメーターを使用したブローカーインスタンスの作成は機能しません。この問題を回避するには、ブローカーの作成後に bootstrap.xml で対応するプロパティーを手動で設定します。

  • ENTMQBR-636 - perf load (mpt) の下で、ジャーナルが破損し、JavaNullPointerException が発生する

    ブローカーが高負荷を管理しているときに IO 関連の問題が発生しないようにするには、JVM に十分なメモリーとヒープ領域が割り当てられていることを確認してください。ActiveMQ Artemis ドキュメントの「Performance Tuning」章の「Tuning the VM」項を参照してください。

  • ENTMQBR-648 - JMS Openwire クライアントは、定義された purgeOnNoConsumer またはキュー filter を持つキューにメッセージを送信できない

    A-MQ 6 JMS クライアントを使用して、purgeOnNoConsumer を持つキューが true に設定されたアドレスにメッセージを送信します。キューにコンシューマーがない場合は失敗します。A-MQ 6 JMS クライアントを使用する場合は、purgeOnNoConsumer オプションを設定しないことが推奨されます。

  • ENTMQBR-652 - 既知の amq-jon-plugin のバグの一覧

    amq-jon-plugin のこのバージョンでは、ブローカーおよびキューの MBean の既知の問題があります。

    ブローカーの MBean の問題:

    • 接続を閉じると java.net.SocketTimeoutException 例外が発生する
    • listSessions()java.lang.ClassCastException を出力する
    • アドレス設定を追加すると java.lang.IllegalArgumentException が発生する
    • getConnectorServices() 操作が見つからない
    • listConsumersAsJSON() 操作が見つからない
    • getDivertNames() 操作が見つからない
    • ネットワークトポロジーの一覧表示で IllegalArgumentException が発生する
    • 削除アドレス設定で、パラメーター名が間違っている

    キュー MBean の問題:

    • expireMessage() で引数型の不一致例外が発生する
    • listDeliveringMessages()IllegalArgumentException を出力する
    • listMessages()java.lang.Exception を出力する
    • エラーメッセージの引数型不一致で moveMessages()IllegalArgumentException を出力する
    • エラーメッセージの引数型不一致で removeMessage()IllegalArgumentException を出力する
    • removeMessages() が、Can’t find operation removeMessage with 2 arguments の例外を出力する
    • retryMessage() が引数型の不一致 IllegalArgumentException を出力する
  • ENTMQBR-655 - [AMQP] populate-validated-user が有効になっているとメッセージを送信できない

    設定オプション populate-validated-user は、AMQP プロトコルを使用して生成されたメッセージではサポートされません。

  • ENTMQBR-738: 提供されるオフラインリポジトリーで AMQ 7 のサンプルをオフラインでビルドできない

    オフライン環境で、AMQ Broker に含まれる例をビルドできません。この問題は、提供されたオフラインの Maven リポジトリーに依存関係がないために発生します。

  • ENTMQBR-897 - 宛先名の特殊文字による Openwire クライアント/プロトコルの問題

    現在、AMQ OpenWire JMS クライアントは、その名前にコンマ (',')、ハッシュ ('#')、および空白を含むキューおよびアドレスにアクセスできません。

  • ENTMQBR-944 - [A-MQ7, Hawtio, RBAC] ユーザーは RBAC によって拒否された場合にフィードバックを取得しない

    コンソールで、許可されていないユーザーが試行した操作が成功しなかったのに成功したことを示すことがあります。

  • ENTMQBR-1498 - HA (レプリケーション、共有ストア) の管理コンソールのダイアグラムが実際のトポロジーを反映しない

    余分なパッシブスレーブを使用してブローカークラスターを設定すると、Web コンソールのクラスターダイアグラムにはこのようなパッシブスレーブは表示されません。

  • ENTMQBR-1848 - "javax.jms.JMSException:キューのルーティングタイプが正しくありません。予想:qpid-jms クライアントが FQQN を持つ javax.jms.Queue オブジェクトとしてマルチキャストキューからのメッセージを消費すると ANYCAST" が発生します。

    現在、Qpid JMS クライアントを使用して、複数のキューが設定されているアドレスに FQQN (完全修飾キュー名) を使用してマルチキャストキューにメッセージを送信すると、クライアントにエラーメッセージが表示され、メッセージを送信することができません。この問題を回避するには、ブローカー設定を変更してエラーを解決し、クライアントのブロックを解除します。

  • ENTMQBR-1875 - [AMQ 7, ha, replicated store] バックアップブローカーが - ActiveMQIllegalStateException errorType=ILLEGAL_STATE message=AMQ119026 の後に "live" または shutdown に表示されないバックアップサーバーがライブと同期していない

    バックアップブローカーがマスターブローカーと同期しようとしている間に、マスターブローカーのページングディスクを削除すると、マスターが失敗します。さらに、バックアップブローカーはマスターとの同期を試みるため、ライブになりません。

  • ENTMQBR-2068 - 一部のメッセージが、HA フェイルオーバー、フェイルバックのシナリオでは受信されるものの、配信されない

    現在、OpenWire クライアントがメッセージを送信している間にブローカーがスレーブにフェールオーバーすると、フェイルオーバー時にブローカーへ配信されるメッセージが失われる可能性があります。この問題を回避するには、承認する前にブローカーがメッセージを永続化していることを確認します。

  • ENTMQBR-2452 - Windows の AMQ 7.2.4 からアップグレードしたブローカー AMQ 7.3.0 がログに記録できない

    Broker インスタンスを Windows の 7.2.4 から 7.3.0 にアップグレードする予定の場合は、アップグレードプロセス時に正しいログマネージャーバージョンを指定しない限り、ロギングは機能しません。詳細は、「Windows での 7.2.x から 7.3.0 へのアップグレード」について参照してください。

  • ENTMQBR-2470 - [AMQ7, openwire,redelivery] メッセージを消費せずにコンシューマーが閉じられた場合の、増加するメッセージの再配信カウンター

    ブローカーがメッセージを Openwire コンシューマーに送信し、コンシューマーがメッセージを使用する前に閉じられると、ブローカーは保留中のメッセージの再配信数を誤って増やします。この動作の数が max-delivery-attempts 設定パラメーターの値を超える場合、ブローカーは、設定に基づいて、メッセージをデッドレターキュー (DLQ) に送信するか、メッセージを破棄します。この問題は Core プロトコルなどの他のプロトコルには影響しません。

  • ENTMQBR-2593 - ブローカーはクロスプロトコルの消費時にメッセージ ID ヘッダーを設定しない

    Qpid JMS クライアントは、別の Qpid JMS クライアントによってメッセージが生成された場合にのみメッセージ ID が正常に取得します。メッセージが Core JMS または OpenWire クライアントによって生成された場合、Qpid JMS クライアントはメッセージ ID を読み取ることができません。

  • ENTMQBR-2678 - 分離されたマスターが再び稼働した後、クラスターに接続できない

    レプリケーション高可用性 (HA) ポリシーを使用する 3 つ以上のライブバックアップグループのクラスターでは、レプリケーション接続の失敗時にライブブローカーがシャットダウンします。ただし、レプリケーション接続が復元され、元のライブブローカーが再起動すると、ブローカーはブローカークラスターに再度参加できないことがあります。元のライブブローカーがクラスターに再参加できるようにするには、まず新しいライブ (元のバックアップ) ブローカーを停止し、元のライブブローカーを再起動してから、元のバックアップブローカーを再起動します。

  • ENTMQBR-2928 - Broker Operator が CR の変更から復旧できず、誤った状態が生じている

    AMQ Broker Operator がカスタムリソース (CR) の更新を適用する際にエラーが発生した場合、Operator は復旧しません。具体的には、Operator が CR への追加の更新について予想通りに応答しなくなりました。

    たとえば、メインのブローカー CR の image 属性の値に誤りがあると、ブローカー Pod は ImagePullBackOff の関連エラーメッセージでデプロイに失敗します。その後、誤りを修正して CR の変更を適用すると、Operator は指定された数のブローカー Pod をデプロイしません。さらに、Operator は追加の CR 変更に応答しません。

    この問題を回避するには、最初にデプロイした CR を削除してから、それらを再デプロイする必要があります。既存の CR を削除するには、oc delete -f <CR name> などのコマンドを使用します。

  • ENTMQBR-2942 - Pod #0 が存在しない Pod に問い合わせる

    カスタムリソース (CR) インスタンスの size 属性を変更してブローカーデプロイメントを縮小すると、クラスターの最初のブローカー Pod は、クラスター内の最初のブローカー Pod は、シャットダウンする前に、シャットダウンしたブローカーからのメッセージを移行するために起動したドレイナー Pod への接続を繰り返し試行できます。この問題を回避するには、以下の手順に従います。

    1) デプロイメントを単一のブローカー Pod にスケーリングします。

    2) すべてのドレイン Pod が起動し、メッセージの移行を完了してからシャットダウンします。

    3) 残りの 1 つのブローカー Pod に「不明なホスト例外」のログエントリーがある場合は、デプロイメントをゼロブローカー Pod に縮小してから 1 つに戻します。

    4) 残りの 1 つのブローカー Pod が例外ベースのログエントリーを記録していないことを確認したら、デプロイメントを元のサイズに戻します。

  • ENTMQBR-3131 - master が強制終了になった場合に、バックアップブローカーに対してトポロジーが正しく更新されない

    ライブ/バックアップのペアが 4 つ以上あるクラスターでライブブローカーが失敗すると、新しく選出されたライブブローカーを含むライブブローカーはすべて、更新されたトポロジーを正しく報告します。ただし、残りのバックアップブローカーには、以下の方法で誤ったトポロジーが表示される場合があります。

    • バックアップブローカーが失敗しているライブブローカーが失敗した場合、残りのバックアップブローカーはトポロジー内にこのバックアップブローカーを 2 回表示します。
    • 失敗したライブブローカーの代わりにバックアップブローカーがフェイルオーバーしない場合、残りのバックアップブローカーには、トポロジー内に失敗したライブブローカーが表示されます。

    この問題を回避するには、各バックアップブローカーの cluster-connection > static-connectors 設定の最初の connector-ref 要素で、予想されるライブブローカーを指定するようにしてください。

  • ENTMQBR-3604 - LDAP ログインモジュールのプールを有効にすると、シャットダウンがハングアップする

    LDAP プロバイダーの接続プールを有効にする (つまり、login.config 設定ファイルの LDAPLoginModule セクションで connectionPooltrue に設定する) と、ブローカークライアントを停止する場合でも LDAP プロバイダーへの接続が永久に開かれる可能性があります。そのため、通常の方法でブローカーをシャットダウンしようとしても、ブローカーはシャットダウンしません。代わりに、SIGKILL などの Linux コマンドを使用してブローカープロセスを終了する必要があります。この状態は、ブローカーの JVM 引数にプールのタイムアウトを指定しても発生します (例: -Dcom.sun.jndi.ldap.connect.pool.timeout=30000)。また、ブローカーのシャットダウンの試行時にアクティブなクライアントはありません。

    この問題を回避するには、login.config 設定ファイルの LDAPLoginModule セクションに connectionTimeout プロパティーの値を設定します。接続プールが接続に対して要求されると、connectionTimeout プロパティーは、最大プールサイズがすでに到達し、プール内のすべての接続が使用中の場合に、ブローカーが接続を待つ最大時間を指定します。詳細は、『AMQ ブローカーの設定』の「認証に LDAP を使用」を参照してください。

  • ENTMQBR-3653 - メトリックスプラグインが設定されておらず、メトリックス Web コンテキストが呼び出されると NPE が発生する

    ブローカーの /metrics Web コンテキストが呼び出され、メトリックスプラグインが設定されていない場合、ブローカーは null ポインター例外を表示します。AMQ Broker の Prometheus メトリックスプラグインの設定に関する詳細は、「Enabling the Prometheus plugin for AMQ Broker」(オンプレミスブローカーデプロイメント) または「Enabling the Prometheus plugin for a running broker deployment」(OpenShift ブローカーデプロイメント) を参照してください。

  • ENTMQBR-3724 - OperatorHub が AMQ Broker Operator の不適切なバリアントを表示する

    OperatorHub を使用して OpenShift Container Platform 4.5 以前に AMQ Broker Operator をデプロイする場合、OperatorHub はホストプラットフォームに適切ではない Operator のバリアントを表示します。これにより、誤った Operator バリアントを選択できます。特に、ホストプラットフォームに関係なく、OperatorHub は Red Hat Integration - AMQ Broker Operator (OpenShift Container Platform の Operator) および AMQ Broker Operator (IBM Z 上の OpenShift Container Platform の Operator) の両方を表示します。

    この問題を回避するには、上記のようにプラットフォームに適した Operator バリアントを選択します。または、OpenShift コマンドラインインターフェース (CLI) を使用して Operator をインストールします。

    OpenShift Container Platform 4.6 では、この問題は解決されています。OperatorHub は、お使いのホストプラットフォームに対応する Operator バリアント のみ を表示します。

  • ENTMQBR-3846 - MQTT クライアントがブローカーの再起動時に再接続されない

    ブローカーを再起動するか、ブローカーがフェイルオーバーすると、アクティブなブローカーは、以前に接続された MQTT クライアントの接続を復元しません。この問題を回避するには、MQTT クライアントを再接続するのに、クライアントで subscribe() メソッドを手動で呼び出す必要があります。

  • ENTMQBR-4023: AMQ Broker Operator:Pod Status Pod 名には現実が反映されない

    特定の OpenShift プロジェクトでの Operator ベースのブローカーデプロイメントの場合、oc get pod コマンドを使用してブローカー Pod を一覧表示すると、Pd の順序値は 0 から始まります (例: amq-operator-test-broker-ss-0)。ただし、oc describe コマンドを使用して、activemqartmises カスタムリソース (oc describe activemqartemises) から作成されたブローカー Pod のステータスを取得した場合、Pod の順序値は誤って 1 から開始します (例: amq-operator-test-broker-ss-1)。この問題を回避する方法はありません。

  • ENTMQBR-4127: AMQ Broker Operator:Operator によって生成されるルート名は OpenShift で長すぎる可能性があります。

    Operator ベースのデプロイメントのブローカー Pod ごとに、Operator が AMQ Broker 管理コンソールにアクセスするために作成するルートのデフォルト名には、カスタムリソース (CR) インスタンスの名前、OpenShift プロジェクトの名前、および OpenShift クラスターの名前が含まれます。たとえば、my-broker-deployment-wconsj-0-svc-rte-my-openshift-project.my-openshift-domain になります。これらの名前の一部が長い場合、デフォルトのルート名は OpenShift が実施する 63 文字の制限を超えている可能性があります。この場合、OpenShift Container Platform Web コンソールでは、ルートに表示されるステータスが Rejected になります。

    この問題を回避するには、OpenShift Container Platform Web コンソールを使用してルートの名前を手動で編集します。コンソールでルートをクリックします。右上の Actions ドロップダウンメニューで、Edit Route を選択します。YAML エディターで spec.host プロパティーを見つけ、値を編集します。

  • ENTMQBR-4140 - AMQ Broker Operator:storage.size が正しく指定されていないと、インストールが使用できなくなります。

    カスタムリソース (CR) インスタンスの storage.size プロパティーを設定し、永続ストレージのデプロイメントでブローカーに必要な Persistent Volume Claim (PVC) のサイズを指定すると、Operator のインストールがこの値を適切に指定しない場合に使用できなくなります。たとえば、storage.size の値を 1 (つまり、単位を指定しない) に設定したとします。この場合、Operator は CR を使用してブローカーデプロイメントを作成できません。さらに、CR を削除し、storage.size が正しく指定された新規バージョンをデプロイする場合でも、Operator はこの CR を使用して予想通りにデプロイメントを作成することはできません。

    この問題を回避するには、まず Operator を停止します。OpenShift Container Platform Web コンソールで Deployments をクリックします。AMQ Broker Operator に対応する Pod の More options (3 つの垂直ドット) をクリックします。Edit Pod Count をクリックし、値を 0 に設定します。Operator Pod が停止すると、storage.size を正しく指定した CR の新規バージョンを作成します。次に、Operator を再起動するには、Edit Pod Count を再度クリックし、値を 1 に戻します。

  • ENTMQBR-4141 - AMQ Broker Operator:永続ボリュームのサイズを増やすには、ステートフルセットを再作成した後でも手動で作業する必要があります。

    デプロイメントのブローカーで必要な Persistent Volume Claim (PVC) のサイズを大きくしようとすると、手動でのステップを加えずに変更は反映されません。たとえば、カスタムリソース (CR) インスタンスの storage.size プロパティーに、PVC の初期サイズを指定するとします。CR を変更して storage.size別の 値を指定する場合、既存のブローカーは元の PVC サイズを引き続き使用します。これは、デプロイメントをゼロブローカーに縮小してから元の数に戻した場合でも当てはまります。ただし、デプロイメントのサイズを拡大してブローカーを追加すると、新しいブローカーは新しい PVC サイズを使用します。

    この問題を回避し、デプロイメント内のすべてのブローカーが同じ PVC サイズを使用するようにするには、OpenShift Container Platform Web コンソールを使用してデプロイメントで使用される PVC サイズを拡張します。コンソールで、StoragePersistent Volume Claims をクリックします。デプロイメントをクリックします。右上の Actions ドロップダウンメニューで Expand PVC を選択し、新規の値を入力します。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る