AMQ Broker 7.4 リリースノート
AMQ Broker のリリースノート
概要
第1章 AMQ Broker 7.4 の長期サポート
7.4.6 は、AMQ Broker 7.4 Long Term Support(LTS)リリースストリームの 最終 マイクロリリースです。7.4.6 以降、この LTS リリースストリームの一部として、それ以上のバグ修正は提供されません。
サポート対象の設定を維持するには、デプロイメントを AMQ Broker 7.8 LTS リリースストリームにアップグレードする必要があります。LTS ストリーム間で Linux および Windows ベースのブローカーデプロイメントをアップグレードする方法は、「 長期サポートバージョン間のブローカーインスタンスのアップグレード」を参照 してください。
AMQ Broker 7.4 は、Long Term Support (LTS) リリースバージョンとして指定されています。バグ修正およびセキュリティーアドバイザリーは、少なくとも 12 カ月間、一連のマイクロリリース(7.4.1、7.42、7.3 など)で AMQ Broker 7.4 で利用可能になります。
つまり、新しいマイナーリリースにアップグレード することなく、AMQ Broker の最新のバグ修正およびセキュリティーアドバイザリーを取得できます。
LTS リリースストリームに関する以下の重要なポイントに注意してください。
- LTS リリースストリームでは、バグ修正のみが提供されます。このストリームには新しい機能拡張は追加されません。
- サポート対象の設定を維持するには、LTS リリースストリームの最新マイクロリリースにアップグレードする必要があります。
- LTS バージョンは、ブローカー 7.4.0 GA から少なくとも 12 カ月間サポートされます。
- LTS リリースストリームのコンテナーイメージ(バージョン 7.4.1 以降)は、別のイメージストリームの Red Hat コンテナーレジストリーから入手できます。LTS コンテナーイメージは 7.4.0 イメージストリームを使用し ません。
7.4 LTS リリースストリームで解決された問題の詳細は、「 AMQ 7 - 7.4.x Resolved Issues」 を参照してください。
第2章 機能
ここでは、AMQ 7.1 以上に追加された主な機能について説明します。
永続性
- Failover
- ブローカーを完全に冗長にし、障害発生時にバックアップブローカーがプライマリーブローカーからの接続を引き継ぐことができます。必要に応じて、プライマリーブローカーとバックアップブローカー間で共有ボリュームを設定できます。
- 配信の保証
- 開発者がアプリケーションから送信するメッセージの中には、メッセージがアプリケーションから消費して処理することが保証される保証が必要になります。メッセージが移動している間にネットワークリンクがダウンしたり、ブローカーが電源停止が発生した場合、メッセージブローカーはオンラインが返されたり、ネットワーク接続が復元されると、未配信のメッセージを再送信する必要があります。
- ゼロ永続化
- ブローカーは、保証は必要なく、高パフォーマンスの場合にメッセージを永続化しないように構成できます。
セキュリティー
- Basic 認証
- ブローカーは、基本的なユーザー名およびパスワード認証情報を使用してクライアントを認証できます。
- ロールベースの認証
- ブローカーは、クライアントに割り当てられたロールに基づいて、クライアントを特定のキューまたはメッセージアドレスに対して認証および認可できます。
- SSL 暗号化接続
- クライアントとブローカー間または他のブローカー間の接続はセキュアで、SSL を使用して接続を暗号化します。
- 証明書ベースの認証
- ブローカーは、証明書を使用してクライアント接続または別のブローカーからの接続を認証できます。
パフォーマンス
- デッド接続の検出
- クライアントは、クライアントの接続ファクトリーまたはサーバー上でグローバルに設定できる特定のライフスパンを超えると、デッド接続を検出できます。
- 低速なコンシューマーの検出
- ブローカーは低速なコンシューマーを検出し、この機能が有効な場合にサーバーから接続を解除することができます。
詳細は、ActiveMQ Artemis プロジェクトを参照してください( http://activemq.apache.org/artemis/index.html)。
第3章 機能拡張
ENTMQBR-428: SASL 外部の実装
AMQ Broker は、ユーザー名とパスワードなどの従来のクレデンシャルを使用する代わりに、接続の SSL 証明書のアイデンティティーを使用して AMQP 接続を検証できます。この利点は、セキュアなアクセスが SSL 証明書で管理されるデプロイメントの利点です。
ENTMQBR-831 - ブローカーはランタイム時に
logging.propertiesの変更に応答する必要があるAMQ Broker は、ブローカーを再起動せずに
logging.properties設定ファイルに加えた変更を保持するようになりました。
ENTMQBR-893 - パスワードのマスクが
login.configで動作しないJAAS 設定ファイルの
login.configでパスワードをマスクできるようになりました。以前は、login.configではパスワードマスクに対応していませんでした。つまり、ファイルのパスワードはプレーンテキストで保存されていました。
ENTMQBR-908 -
bootstrap.xmlでマスクされたパスワードをサポートするbroker.xml設定ファイルでパスワードをマスクできるようになりました。以前のバージョンでは、パスワードマスクはbroker.xmlではサポートされていませんでした。つまり、ファイルのパスワードはプレーンテキストで保存されていました。
ENTMQBR-935 -
broker.xmlを複数のファイルに分割し、broker.xmlにインポートするためのアビルティーがある。AMQ Broker は
broker.xml設定ファイルに XML が含まれるようになり、broker.xmlを別のファイルに分割できるようになりました。たとえば、同じアドレスとアドレス設定を共有する複数のブローカーがある場合は、別のファイルでアドレスを定義し、そのファイルを各ブローカーのbroker.xml設定ファイルに追加できます。
ENTMQBR-945 - 配信モードが非同期であるため、承認に失敗した場合に非障害のシナリオで失われた
AMQ Broker では、クライアントによる非永続メッセージが失われる際の通知を設定できるようになりました。ブローカーの停止ページやストレージプロバイダーの接続解除などの明確な障害状態により、このようなタイプの損失が発生する可能性があります。ただし、非永続メッセージのデフォルトの配信モード(非同期)は、承認の失敗や未設定キューの使用などの状況でメッセージが失われる可能性もあります。CompletionListener API を使用して、このようなメッセージロスイベントの通知を設定できるようになりました。
ENTMQBR-1056 - DB2 v11.latest のサポートを追加
AMQ Broker の 7.2 バージョンは、データベース DB2、バージョン 11 のサポートが追加されました。
ENTMQBR-1063 - DB2 互換性の向上
AMQ Broker は、メッセージストレージに対して IBM DB2 バージョン 10.5 および 11.1 をサポートするようになりました。以下の拡張機能が追加されました。
-
AUTO_INCREMENTが DB2 でサポートされるようになりました。 - システムの時間と DB2 時間の間の最大許容時間差を設定できるようになりました。これにより、時間差が設定された値を超えた場合にブローカーが自動的にシャットダウンされるため、高可用性の信頼性が向上します。
- データベーステーブルを外部で作成できるようになりました。同時テーブル作成チェックが改善されました。
-
ENTMQBR-1271: カスタム/データディレクトリーの使用を許可する
AMQ Broker 7.2 では、ブローカーインスタンスの設定ファイルおよびデータを保存する柔軟性が向上します。以前のバージョンでは、ブローカーインスタンスの設定ファイルおよびデータは、ブローカーインスタンスのディレクトリー内の
etc/ディレクトリーおよびdata/ディレクトリーにのみ保存できました。これらのファイルは、ブローカーインスタンスのディレクトリー外の場所を含む、任意のカスタムディレクトリーに保存できるようになりました。
ENTMQBR-1282 - 排他的コンシューマーのサポート
AMQ Broker は排他的キューをサポートするようになりました。排他キューは、複数のコンシューマーが存在する場合でもメッセージを単一のコンシューマーにルーティングします。さらに、メッセージを受信するコンシューマーは Guaranteed メッセージの順序で受信され、メッセージが作成された順序で消費されるようにします。
ENTMQBR-1308 - さまざまなブローカーイベントをロギングするために
ActiveMQServerPluginを作成するAMQ Broker 7.2 より、新しい
LoggingActiveMQServerPluginでロギングが改善されました。このプラグインを使用すると、さまざまなタイプのイベントに関する高度なロギングを設定できます。
ENTMQBR-1367 - SSL 証明書失効リストをサポートする
AMQ Broker 7.2 以降では、アクセプターの URL に SSL 証明書失効リストを指定できるようになりました。クライアント通信に SSL を使用している場合は、スケジュールされている有効期限前に発行した認証局(CA)によって取り消された証明書の一覧を指定でき、信頼しなくなることを意味します。
ENTMQBR-1370 - XML/JMX のキューに
ユーザー属性を追加キューが自動作成されると、接続クライアントのユーザー名が割り当てられます。このユーザー名は、キューおよび JMX および AMQ Console のメタデータとして公開されるようになりました。
broker.xmlファイルを変更して、事前定義済みのキューにユーザーを設定することもできます。今回の機能拡張により、キューの起点、およびその作成方法について理解し、追跡できるようになりました。
ENTMQBR-1385 - 仮想トピックコンシューマーのサポートを追加
AMQ Broker は、クライアントに変更を加えずに仮想トピックサブスクリプション(ActiveMQ 5.x のみの機能)を使用する既存の OpenWire クライアントの移行をサポートするようになりました。この機能は、仮想トピックの概念を Artemis 完全修飾キュー名(FQQN)にマッピングします。FQQN を使用すると、標準の Artemis トピックサブスクライバーキューを作成およびアクセスできます。
ENTMQBR-1403 - LDAP ログインモジュールのサポート参照
AMQ Broker が LDAP 参照をサポートするようになりました。LDAP インフラストラクチャーで LDAP 参照を使用する場合、これらの参照を使用してユーザーの認証および認可を行うようにブローカーを設定できるようになりました。ブローカーの JAAS LDAP ログインモジュールを使用して、ブローカーが LDAP 参照を処理する方法を制御できます。
ENTMQBR-1783 - AMQ 7 にユーザーおよびロールマネージャー(作成/削除/更新/リスト)JMX エンドポイントを追加
AMQ Broker 7.3 は、
PropertiesLoginModuleクラスの使用時に管理 API を使用してユーザー情報の追加、削除、および更新をサポートします。以前のバージョンでは、コマンドラインインターフェースを使用してのみこれらのアクションを実行できました。
ENTMQBR-1918 - [AMQ7, critical-analyzer] タイムアウトの原因を分析する出力に追加
org.apache.activemq.artemis.utils.criticalという名前のパッケージでトレースを有効にすると、重大 Analyzer のログでパフォーマンスが低下したブローカーに関する追加情報を提供するようになりました。
ENTMQBR-1932 - Java 11 での AMQ 7 のサポート
AMQ Broker 7.4 では、JDK 11 Java 仮想マシン(JVM)のランタイムサポートを追加します。
ENTMQBR-1974 -
management.xmlでマスクされたパスワードをサポートするAMQ Broker は、
management.xmlファイルのkey-store-passwordおよびtrust-store-passwordの設定のマスクをサポートするようになりました。これらの値は、SSL でリモート JMX アクセスをセキュアにする場合に使用されます。
ENTMQBR-2020 - アドレスへのルーティングおよびルーティングされていないメッセージの追跡
アドレスメトリクスに、アドレスが受け取ったメッセージの数に関する情報が含まれるようになりました。この数は、ルーティングされていないメッセージとルーティングされていないメッセージ間で分割されます。今回の機能強化以前は、たとえばサブスクリプションがない JMS トピックが発生した場合など、ルーティングされていないメッセージをアドレスが受信したかどうかを判断できませんでした。
ENTMQBR-2025 - カスタムの最後の値キューキーを定義できるようにする
AMQ Broker 7.4 は、カスタムの最後の値キー名を持つ最後の値キューをサポートします。以前のバージョンでは、最後の値キューは、
_AMQ_LVQ_NAMEのデフォルトの最後の値キー名のみを使用していました。
ENTMQBR-2139 - データベースメッセージの永続性のために MSSQL をサポートする
AMQ Broker 7.4 は、JDBC ベースの永続性に対して Microsoft SQL Server 2016 をサポートします。
ENTMQBR-2173: Prometheus プラグインまたはエージェントをサポートする
AMQ Broker 7.4 には、Prometheus 用に事前設定されたプラグインが含まれています。Prometheus は、大規模でスケーラブルなシステムを監視し、長期間にわたって過去のランタイムデータを格納するために構築されたソフトウェアです。AMQ Broker Prometheus プラグインはブローカーランタイムメトリクスを Prometheus 形式にエクスポートし、Prometheus 自体を使用してデータを視覚化し、クエリーを実行することができます。
ENTMQBR-2299 - JMSXUserID なしでメッセージを拒否するオプション
AMQ Broker 7.4 以降では、
_AMQ_VALIDATED_USERメッセージキーを使用してメッセージの起点を追跡し、ログに記録できます。メッセージの送信時に、クライアントにユーザー名がすでに入力されていないメッセージを拒否するようにブローカーを設定することもできます。
ENTMQBR-2345: databaseStoreType の改良
AMQ Broker 7.4 では、
broker.xml設定ファイルでdatabase-store要素を設定する際に暗号化されたユーザー名とパスワードを追加できます。
第4章 非推奨の機能
-
7.3 以降、AMQ Broker には Hawtio ディスパッチコンソールプラグインである
dispatch-hawtio-console.warに同梱されなくなりました。以前のバージョンでは、AMQ Interconnect の管理にディスパッチコンソールを使用していました。ただし、AMQ Interconnect は独自のスタンドアロン Web コンソールを使用するようになりました。
第5章 テクノロジープレビュー
- フェデレーションされたキューおよびアドレスのサポートは、テクノロジープレビューとしてのみ利用できます。フェデレーションにより、ブローカーがクラスターの一部にならないと、ブローカー間でメッセージを送信できます。詳細は、Apache ActiveMQ Artemis ドキュメントの「 Federation 」を参照してください。
AMQ Broker Operator および付随するカスタムリソース定義およびカスタムリソースファイルは、テクノロジープレビュー機能としてのみ利用できます。Operator は、Kubernetes アプリケーションをパッケージ化、デプロイ、および管理できるようにするプログラムです。詳細は、「 Operator を使用した OpenShift Container Platform での AMQ Broker のデプロイ」を 参照してください。
重要テクノロジープレビュー機能は、Red Hat の実稼働サービスレベルアグリーメント (SLA) でサポートされておらず、機能的に完全でない可能性があります。Red Hat は、実稼働環境での使用は推奨していません。詳細は、「テクノロジープレビュー機能のサポート範囲」を参照してください。
第6章 修正された問題
ENTMQBR-742 - Openwire および AMQP クライアントでは JMS キューが自動的に削除されない
以前のバージョンでは、<
auto-delete-addresses> および <auto-delete-queues> がtrueに設定されたアドレスおよびキューは、AMQ OpenWire JMS クライアントが切断されると削除されませんでした。
ENTMQBR-781 - [エラーコード] 異なる理由で異なる場所で定義された同じエラーコード
以前のリリースの AMQ Broker では、ロギングエラーコードはすべてのブローカーログメッセージについて一意ではありませんでした。重複および競合するロギングのエラーコードが修正されました。
ENTMQBR-882 - プライマリースレーブがダウンしても、スランドススレーブがマスターにレプリケーションを公開しない
この問題は、スレーブとも呼ばれる複数のバックアップブローカーが、1 つのライブ(マスター)ブローカーを提供する場合に、以前のリリースで発生していました。このシナリオでは、プライマリーバックアップブローカーに障害が発生した場合、セカンダリーバックアップは複製を試みます。ただし、その操作は失敗しても、セカンダリーバックアップはプライマリーバックアップを引き継ぐことができませんでした。そのため、高可用性は失われていました。この問題は解決されています。
ENTMQBR-914 - [AMQ7, broker startup ] AMQ224000: Failure in initialization:
java.lang.IllegalStateException: Cannot find queue with id XXXX以前のバージョンの AMQ Broker では、準備済み状態に XA トランザクションがあり、このトランザクションで使用したキューを削除してからブローカーの再起動を試みると、ブローカーが起動に失敗しました。
ENTMQBR-929 -
LDAPLoginModuleが参照を処理できない以前のバージョンでは、LDAP JAAS ログインモジュールは LDAP 参照を処理できず、認証および承認が失敗しました。
ENTMQBR-930 - 複数の LDAP モジュールが設定されたログインができない
LDAP JAAS ログインモジュールのコミット操作は常に
nullを返し、これによりモジュールの複数のインスタンスが同じドメインに設定された場合に予期しない動作が生じます。
ENTMQBR-943 - [AMQ7, Openwire, Compression] consuming Openwire 圧縮
bytemessagethrowsjava.util.zip.DataFormatException: wrong header check以前のバージョンでは、OpenWire プロトコルを使用してキューに JMS プロパティーが設定されている圧縮された ByteMessages を送信すると、メッセージを圧縮しようとすると、例外がコンシューマー側で出力されました。詳細は、Red Hat カスタマーポータルのナレッジベースアーティクル( https://access.redhat.com/solutions/3269061 )を参照してください。
ENTMQBR-956 - [AMQ7, AMQP, JMX, DeliveringCount] JMX operation
listDeliveringMessages()returns empty string when deliveryCount> 0以前のリリースでは、JMX 操作
listDeliveringMessages()はトランザクションの AMQ JMS クライアントによって使用されたメッセージを返しませんでした。JMX 操作listDeliveringMessages()が呼び出されると、トランザクションメッセージが正しく返されるようになりました。
ENTMQBR-965 - [AMQ7, openwire, exclusive consumer] 排他的コンシューマーを使用する AMQ6 OpenWire クライアントが AMQ 7 ブローカーと動作しません。
AMQ 7 では、キューのコンシューマーの最大数を 1 つに設定し、AMQ 6 の 排他的コンシューマー と同じように動作しません。AMQ 6 では、排他コンシューマーを使用すると、1 つのコンシューマーがすべてのメッセージを受信することを意味します。他のコンシューマーはまだ登録されており、メッセージを消費しません。現在の排他的コンシューマーがキューから離れると、別のコンシューマーは排他的コンシューマーになります。
以前のバージョンでは、AMQ 7 では、キューに
max-consumers = 1を設定すると、この制限に達すると、ブローカーはAMQ119200エラーを返し、新しいコンシューマーがキューに参加できませんでした。このエラーは発生しなくなりました。
ENTMQBR-966 - リモートクラスターメンバーで Receiver リンクが開かれると、未設定の AMQP メッセージが失われる
本リリースでは、メッセージが失われる原因となっていた問題が修正されました。以前のバージョンでは、AMQP アドレスを使用してメッセージがブローカーに送信され、アドレスがメッセージに設定されていない場合、メッセージの一部が再分配されると失われる可能性がありました。
ENTMQBR-967 - [AMQ 7.1.0 CR1.1] Limit non-ssl connection, handshake-timeout not configurable
以前のバージョンでは、ブローカーは認証されていないクライアントを切断しませんでした。AMQ Broker 7.2 では、設定パラメーター
handshake-timeoutを使用して、認証されていないクライアントが接続したままにできる期間を制限できます。
ENTMQBR-973 - Hawtio コンソールに誤ったメッセージの優先度が表示される
AMQ Console でメッセージを表示する際に、メッセージの優先度が正しくなりました。以前のメッセージの優先度は、デフォルトで
4に設定されていました。
ENTMQBR-1016 - [AMQ7,Hawtio]AMQ 7 hawtio コンソールがログアウト後にブラウザーのローカルキャッシュにユーザーのパスワードを保存する
AMQ Console でセキュリティーの問題が修正されました。AMQ Console にログインする前に、
Passwordフィールドの値が Google Chrome Developer ツールのローカルストレージから表示されました。
ENTMQBR-1018 - ライブスレーブのマスターへのフェイルバック時に、コンソールでもダウンしたすべてをオフにします。
高可用性設定では、スレーブブローカーがマスターブローカーに制御を返すと、AMQ Console にアクセスできるようになりました。以前のバージョンでは、AMQ コンソールは、マスターブローカーへの制御に戻すと、スレーブブローカーで利用できませんでした。
ENTMQBR-1030 - Web サーバー設定内の Hawtio のディレクトリー一覧制限
AMQ Console では、制限されたディレクトリー一覧へのアクセスが許可されなくなりました。
ENTMQBR-1045 - OpenWire クライアントを使用したブローカーログでクライアント
接続に失敗する以前のバージョンでは、OpenWire クライアント(ActiveMQ)が正常に切断されると、ブローカーは以下のような警告メッセージを表示していました。
クライアント接続が失敗し、セッション ID:localhost-45795-1527065581471-5:1:1 のリソースを消去します。この問題は解決されています。
ENTMQBR-1061 - LegacyLDAPSecuritySettingsPlugin 使用時の例外
以前は、レガシーLDAPSecuritySettingsPlugin を使用する場合、標準以外の認証設定を指定していても有効な構文でも、例外が表示されました。これは、ブローカーは順番にではなくハードコーディングされたキー名に基づいて LDAP 検索結果を解釈するためです。この問題は修正されています。
ENTMQBR-1130 - マスターが停止した場合にアンデプロイされる
実行時にブローカーの設定ファイル(
broker.xml)に宛先を追加する場合、宛先は設定ファイルに保持され、ブローカーが再起動された場合はリロードされるようになりました。以前のバージョンでは、宛先をブローカーの設定ファイルに追加する場合、ブローカーの再起動時に宛先はリロードされませんでした。
ENTMQBR-1169 - [AMQ 7, Hawtio, large message] Sending very large messages via Hawtio results in an exception(Hawtio を介して非常に大きなメッセージを送信すると例外が発生する)
以前のバージョンでは、Hawtio コンソールを使用してブローカーの内部バッファーサイズを超えるメッセージを送信した場合、例外が表示されました。この問題は修正されています。ブローカーはこのタイプのメッセージを大きなメッセージに自動的に変換し、正常に送信するようになりました。
ENTMQBR-1184 - AMQP プロトコルによって提案されるLargeMessage が AMQP プロトコルで消費できない
以前のリリースでは、AMQP JMS Object Message のサイズが、最大ジャーナルレコードサイズに指定された値よりも大きい場合、ブローカーで例外が発生し、コンシューマーはメッセージを受信できませんでした。この問題は AMQP の大きなメッセージのコアメッセージ変換プロセスへの問題によって生じました。
この問題は修正され、AMQP の大きなメッセージは通常どおり送受信できます。
ENTMQBR-1461 - AMQP: 大きなメッセージとして処理された
ObjectMessageをディスパッチする際にIndexOutOfBoundsExceptionが発生する以前は、Qpid JMS クライアントで AMQP プロトコルを使用し、大きなメッセージ(
min-large-message-sizeよりも大きく)である JMSObjectMessageを送信した場合、メッセージが消費されるとエラーが発生しました。このエラーは発生しなくなりました。
ENTMQBR-1466 - [3 HA ペア] マスターが強制終了し、それ自体を分離した後にスレーブが存続しない
quorum voting プロトコルが修正されました。以前のバージョンでは、レプリケーションの 3 つの高可用性ペアで構成される高可用性設定では、この問題により、フェイルオーバーイベント中にスレーブブローカーが引き継ぐことができませんでした。代わりに、スレーブブローカーはブローカークラスターから分離されます。
ENTMQBR-1500 - Jolokia の読み取りリクエストがすべての属性を取得しない
Jolokia を使用すると、ブローカー MBean のすべての属性をリクエストできるようになりました。
ENTMQBR-1548 - AMQP インターセプターの実装が null RemotingConnection 参照を渡す
以前のバージョンでは、AMQP プロトコルでインターセプター API を使用し、以下のメソッドを実装している場合、コネクションパラメーターは常に null でした。
public boolean intercept(AMQPMessage message, RemotingConnection connection)
connection パラメーターが適切に設定されるようになりました。
ENTMQBR-1699 -
./artemisプロデューサーの使用時にメッセージコンテンツを設定できない以前のリリースの AMQ Broker 7.x には、A-MQ 6.x 製品として
./artemisプロデューサーを使用する場合にメッセージコンテンツを指定するオプションが含まれていませんでした。--messageパラメーターが利用でき、これを使用してメッセージの内容を指定できるようになりました。
ENTMQBR-1757 - アドレス ANYCAST を MULTICAST に更新した場合、または broker.xml のその逆方向に AMQ Broker によって ERROR がスローされる
以前のバージョンでは、ブローカーが停止し、キューを持つ既存のアドレスのルーティングタイプが
broker.xmlファイルで変更された場合、ブローカーは再起動に失敗しました。設定更新に関連するコードが変更され、このような設定変更が可能となり、アドレスまたはキューのデプロイ中にも、ブローカーはエラーをログに記録し、起動したままになりました。
ENTMQBR-1816 - Queue#MessageCount 負のメッセージおよび AMQP コンシューマーへのフローを停止する
以前のバージョンでは、AMQP クライアントは、クライアントがメッセージを受信したものの消費されなかったことを示す配信されたメッセージの配置を送信できました。この動作により、ブローカーのメッセージ数が負の値になる可能性があります。この問題は解決されています。
ENTMQBR-1878 - [AMQ7、ブローカーのシャットダウン、JMX コネクター] management-context で設定された
コネクターが終了しない以前のリリースでは、ブローカーを停止する際にブローカーが管理コンテキストを適切に閉じる場合がありました。ブローカーは停止しているように見えますが、JVM プロセスは完全に終了することはありません。ブローカーを停止し、JVM プロセスが管理コンテキスト
コネクターが設定された場合でも、常に管理コンテキストが閉じられるようにチェックが加えられました。
ENTMQBR-1880 - IE を使用すると Hawtio Artemis タブが消える
AMQ Console Hawtio プラグインは、Internet Explorer でサポートされていない Javascript 矢印関数を使用します。AMQ Console を使用する場合、ブラウザーウィンドウで 戻る矢印 または foward 矢印をクリックすると、Artemis タブをコンソールで表示することはできません。この問題を回避するには、別のブラウザーを使用するか、コンソールアプリケーション自体でナビゲーションツールを使用します。
ENTMQBR-1958 - ページの更新によって永続化されない列のキュー設定の変更
AMQ Console の更新により、デフォルトの列一覧の変更が失われました。設定を維持するには、ブラウザーウィンドウを更新しないようにする必要があります。ページにアクセスしてブラウザーを更新すると、列一覧の設定が保存され、再利用されるようになり、設定が失われなくなりました。
ENTMQBR-1995 - ブローカーでの TRACE レベルのロギングを有効にすると
ConcurrentModificationExceptionおよび failed 操作が発生する以前のリリースでは、複数のスレッドがメッセージのプロパティーを同時に変更できました。これにより、TRACE レベルのロギングが有効になっている場合に、
WARNメッセージがログに出力されました。メッセージプロパティーへの同時アクセスは安全に行われ、この問題に関連するログのWARNメッセージが発生しなくなりました。
ENTMQBR-2011 - 大きなメッセージを同期するときに store-forward 内部キューのコンシューマーがドロップされる
クラスター環境で一時的な宛先を使用すると、ブローカー間でメッセージをクラスタリングする際にメッセージがストアおよび転送キューからドロップされました。そのため、ブローカーはメッセージをクラスターノード全体に分散できず、再起動する必要がありました。クラスター環境で一時的な宛先を安全に使用できるようになりました。
ENTMQBR-2014 - AMQ7:
io.netty.handler.codec.DecoderException: java.lang.NullPointerExceptionin broker log認識されないプロトコルを使用して接続しているクライアントの場合、完全な stack-trace を持つ
NullPointerExceptionがログに記録されました。AMQ Broker は認識されないプロトコルをより適切に検出し、処理し、適切なERRORメッセージがログに記録されるようになりました。
ENTMQBR-2024 - ブローカーはアドバイザリーコンシューマーのクライアント要求を無視すると、アドバイザリーメッセージが無効になります。
本リリース以前は、ブローカーでアドバイザリーメッセージが無効になっていると、ブローカーはクライアント要求を無視し、アドバイザリーコンシューマーを作成し、これらのコンシューマーの記録を行いませんでした。クライアントがこれらのコンシューマーのクエリーを試みると、例外が発生します。この問題は修正されています。ブローカーは、クライアントが要求する際にアドバイザリーコンシューマーのレコードを作成し、その後の操作が正常に実行されるようになりました。
ENTMQBR-2052 - メッセージの負荷分散をオフにし、サブスクライブされたコンシューマーではなく他のノードのキューにメッセージを送信できない
AMQ Broker 7.2.3 よりも前のリリースでは、再帰的な呼び出しにより、メッセージの負荷分散が
OFF に設定されている場合に特定の条件にその結果、ブローカーはクライアントから送信されたメッセージを受信しませんでした。AMQ Broker 7.2.3 では、再帰呼び出しが無限にならないように検証手順が追加されました。メッセージの負荷分散がStackOverflowErrorエラーメッセージが出されました。OFF に設定されている場合でも、ブローカーはクライアントによって送信されたメッセージを受け取るようになりました。
ENTMQBR-2055 - [Hawtio] コンソールがコアクライアントの空の ClientID を表示する
AMQ Console で AMQ Broker 7.2.3 よりも前のリリースを使用する場合、プロデューサーまたはコンシューマーの AMQ Core Protocol JMS Client 接続を表示する際に Client ID という名前のフィールドが生成されませんでした。これで、AMQ Core Protocol JMS Client 接続の AMQ Console に Client ID の値が表示されます。
ENTMQBR-2063 - ユーザーが匿名の sasl および GuestLoginModule が設定されていない場合、ブローカーは sasl エラーを送信しない
本リリース以前は、クライアントがゲストアクセスが有効になっていないブローカーへの匿名ログインを試行すると、ブローカーは例外を生成していました。ただし、この例外は認証エラーとしてクライアントに認識できませんでした。この問題は解決されています。
ENTMQBR-2074 - DLQ からの再試行と Expiry Queue が Web コンソール(Hawtio)で破損
以前のバージョンでは、ブローカーは DLQ からの配信を再試行するメッセージを無視していました。これらのメッセージは DLQ に保持されます。この問題は修正されています。ブローカーは DLQ から元のキューに再配信されたメッセージを正しく追加するようになりました。
ENTMQBR-2085 - [AMQ7, JMSXGroupSeq] Support JMSXGroupSeq] -1 to close/reset Groups
以前のバージョンでは、クライアントが ActiveMQ 5 ごとに JMSXGroupS を -1 に設定すると、ブローカーはメッセージグループを予想通りに削除しませんでした。そのため、メッセージグループをコンシューマーおよびブローカーに固定した後は変更できませんでした。この問題は解決されています。
ENTMQBR-2086 - [AMQ 7 JMS Selectors] JMS セレクターが壊れる場合がある
サポートされるプロトコルごとに、
JMSXGroupIDやAMQGroupIDなどのフィールドはフィルターパーサーによって適切に解析されませんでした。そのため、これらのフィールド名を使用するクエリーを使用してフィルターを作成できませんでした。この問題を修正するために、これらの擬似フィールドを解析するラッパーが実装され、フィルターが入力を正しく解析するようになりました。
ENTMQBR-2100 - AMQ 7.2.1: 負荷が大きい場合: org.apache.activemq.artemis.core.paging.cursor.NonExistentPage: Invalid messageNumber passed
受信トランザクションはページング操作にコミットされますが、ページが完了すると、トランザクション操作によってそのトランザクション操作が削除されます。以前のバージョンでは、トランザクション操作は、受信側のトランザクションがアクセスする前にページを削除することがありました。これにより、受信側のトランザクションがメッセージを見つけることができませんでした。この場合は、例外が発生しています。この問題は解決されています。
ENTMQBR-2117 - [AMQ7,Hawtio] Unable to delete queue with single quotes from Hawtio console(Hawtio コンソールから単一の引用符があるキューを削除できない)
本リリース以前は、Hawtio コンソールを使用して単一の引用符を含むメッセージを削除する場合、ブローカーはメッセージを正常に削除しませんでした。この問題は修正されています。
ENTMQBR-2147 -(7.2.z)バックアップは、共有ストアの再接続後にアクティベートされない
以前のバージョンでは、共有ストアを使用して高可用性のためにライブバックアップブローカーのペアが設定されている場合、ライブブローカーのシャットダウン時にバックアップブローカーのアクティベーションが失敗する可能性がありました。具体的には、ライブブローカーのシャットダウン前に共有ストアが切断され、再接続された場合に、この状況が発生します。この問題は解決されています。
ENTMQBR-2177 - 発信セッションが閉じられたときに一時宛先の削除を許可する
以前は、JMS API を使用して送信元セッションがすでに閉じられたときに一時的な宛先を削除する場合、操作は成功しなかった場合に、この操作は成功しているように見えることがありました。この問題は修正されています。
ENTMQBR-2325 - エラーをスローすると JMSBridge が停止しない
以前のバージョンでは、JBoss EAP と Artemis Core Protocol を使用しないブローカーとの間の JMS ブリッジは、ブローカーがすでに停止している場合に、停止中に例外を発生させていました。この例外により、EAP サーバーも JMS ブリッジも正常に停止できませんでした。この問題は解決されています。
ENTMQBR-2326 - JMSBridge が停止できない
以前のバージョンでは、JBoss EAP と Artemis Core Protocol を使用しないブローカーとの間の JMS ブリッジは、停止中に例外を発生させていました。この例外により、EAP サーバーも JMS ブリッジも正常に停止できませんでした。この問題は解決されています。
ENTMQBR-2333 - クラスター設定の一時キューアドレスリーク
以前のバージョンでは、一時キューがクラスターノード全体に複製された場合に、指定のノード上の一時キューへの接続を閉じてもキューに関連付けられたサーバーリソースをパージしませんでした。つまり、キューにはアドレスリークがあります。この問題は解決されています。
address-queue-scan-periodパラメーターを使用して、ブローカーが削除の可能性についてキューをスキャンする頻度を指定できるようになりました。
ENTMQBR-2386: プロデューサー msg/s レートが低いと、低速なコンシューマーが切断されない
以前のバージョンでは、低速なコンシューマーをチェックする場合、ブローカーはチェック期間中にプロデューサーが追加したメッセージのみを計算していました。ブローカーは、チェック期間の開始時にキューの既存のメッセージを考慮に入れませんでした。これにより、ブローカーがメッセージの消費速度を遅らせる場合に無駄なケースが生じる可能性がありました。たとえば、プロデューサーがバーストのキューに多数のメッセージを送信し、低速なコンシューマーチェック期間中にアイドル状態であった場合に、このような状況が発生する可能性があります。
ENTMQBR-2464 - activemq.management にメッセージを送信するときに Qpid JMS クライアントが誤った例外をスローする
本リリース以前は、AMQP Qpid JMS クライアントを使用してメッセージを内部キュー
activemq.managementに送信すると、例外が表示されました。この問題は解決されています。
ENTMQBR-2467 - [AMQ7, large header] メッセージが、「AMQ222010: Critical IO Error, shutdowning the server.」でブローカーをシャットダウンします。
本リリース以前は、クライアントが
journal-buffer-sizeパラメーターの値よりも大きなヘッダーを持つメッセージを送信すると、ブローカーがシャットダウンする例外がありました。この問題は解決されています。ブローカーは、journal-buffer-sizeパラメーターの値よりも大きなヘッダーを持つメッセージを拒否するようになりました。
ENTMQBR-2476 - vote-on-replication-failure の使用時にライブサーバーがシャットダウンしない
以前のバージョンでは、レプリケーション高可用性(HA)ポリシーを使用する 3 つ以上のライブバックアップグループのクラスターでは、レプリケーション接続の失敗時にライブブローカーがシャットダウンしない可能性がありました。具体的には、この問題は以下のすべてが true の場合に発生しました。
-
HA ポリシー設定の
vote-on-replication-failureパラメーターがtrueに設定されている。 - ライブブローカーはクォーラム投票時に過半数を受け取ることができませんでした。
- クォーラム投票が行われる前にバックアップブローカーがライブになる
この問題は解決されています。
-
HA ポリシー設定の
ENTMQBR-2498 - 配信中にコンシューマーがビジー場合にメッセージのグループ化が停止する可能性がある
以前のバージョンでは、メッセージのグループ化を使用すると、コンシューマーがビジー状態になると、メッセージが配信されない可能性がありました。この場合、ブローカーが再起動するまで、メッセージはキューにスタックしました。この問題は解決されています。
ENTMQBR-2528 - カスタムセキュリティー設定のあるアドレスについて QOS 2 でサブスクライブしていると、MQTT コンシューマーが java.io.EOFException を取得する
以前のバージョンでは、QoS(Quality of Service)レベル 2 がカスタムセキュリティー設定を持つアドレスにサブスクライブすると、MQTT コンシューマーは例外を表示していました。この問題は解決されています。
ENTMQBR-2575 - [AMQ 7.3.0] HawtIo - ヘッダーのあるメッセージを送信できない
以前のバージョンでは、Hawtio コンソールを使用してヘッダーでメッセージを送信できませんでした。この問題は解決されています。
ENTMQBR-2579 - マスクされたパスワードは LDAP security-setting-plugin で動作しない
本リリース以前は、
artemis maskコマンドを使用して LDAP <security-setting-plugin> 設定に含まれるパスワードを暗号化する場合、broker.xml設定ファイルのmask-password属性をtrueに設定していても、暗号化されたパスワードは機能しませんでした。この問題により、LDAP 認証エラーが表示されます。この問題は解決されています。
長期サポート(LTS)およびメンテナンスリリースで解決された問題の詳細は、以下のアーティクルを参照してください。
第7章 既知の問題
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-617 - 証明書ベースの認証が AMQP および OpenWire クライアントで動作しない
SSL 証明書に基づく認証は AMQP および OpenWire クライアントではサポートされません。
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-1815 - 自動更新での Hawtio ビューの変更
自動更新が有効な場合には、Hawtio コンソールは 5 秒ごとに画面を更新します。また、自動更新はビューを Attributes 画面に変更すると、表示している他の画面からフォーカスが消えてしまいます。この問題を回避するには、コンソールの右上隅にある Preferences を選択します。Update rate ドロップダウンリストで、
No refreshesを選択します。
ENTMQBR-1848 - 「javax.jms.JMSException: Incorrect Routing Type for queue, expecting: ANYCAST」は、qpid-jms クライアントがマルチキャストキューからのメッセージを、FQQN 使用した
javax.jms.Queueオブジェクトとして消費するときに発生する現在、Qpid JMS クライアントを使用して、複数のキューが設定されているアドレスに FQQN (完全修飾キュー名) を使用してマルチキャストキューにメッセージを送信すると、クライアントにエラーメッセージが表示され、メッセージを送信することができません。この問題を回避するには、ブローカー設定を変更してエラーを解決し、クライアントのブロックを解除します。
ENTMQBR-1875 - [AMQ 7, ha, replicated store] バックアップブローカーが「ライブ」にならない、または ActiveMQIllegalStateException errorType=ILLEGAL_STATE message=AMQ119026: Backup Server was not yet in sync with live の後にシャットダウンしているようにみえる
バックアップブローカーがマスターブローカーと同期しようとしている間に、マスターブローカーのページングディスクを削除すると、マスターが失敗します。さらに、バックアップブローカーはマスターとの同期を試みるため、ライブになりません。
ENTMQBR-1942 - [AMQ 7.2、共有ストア、スケールダウン] スレーブをアクティベートしてスケールダウンしようとすると NullPointer 例外が発生する
共有ストアを使用してクラスターでスケールダウンするようにスレーブブローカーを設定すると、マスターブローカーがオフラインになるとスレーブで例外が発生する可能性があります。
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-2681 - Operator は、サイズ >= 2 時に外部サービスとルートのみを作成する
AMQ Broker Operator を使用して単一のブローカーをデプロイする場合、Operator はサービスを作成しず、ポート 8161(Web コンソール/Jolokia ポート)および 61616(複数のプロトコルポート)で必要なルートを作成し、OpenShift 内部ネットワーク外からブローカー Pod にアクセスします。OpenShift 内の他の Pod は予想通りにブローカー Pod にアクセスできます。この問題を回避するには、ブローカーデプロイメントを最大 2 つ以上のブローカーに拡張し、1 つのブローカーに戻します。これには、ブローカーカスタムリソースファイルの
spec.sizeパラメーターの値を変更します。デプロイメントを複数のブローカーにスケールアップしてから 1 つに戻すと、Operator は外部ブローカーへのアクセスに必要なサービスと一致するルートを作成します。spec.sizeパラメーターの使用および Operator ベースのブローカーデプロイメントのネットワークサービスに関する詳細は、「 基本的なブローカーのデプロイ」を 参照してください。
第8章 重要なリンク
改訂日時: 2022-09-08 15:58:46 +1000