Red Hat AMQ Broker 7.7 のリリースノート
AMQ Broker のリリースノート
概要
第1章 機能拡張
ENTMQBR-1187 - 期限切れおよびデッドレターリソースの自動作成
AMQ Broker 7.7 では、リソース (つまり、アドレスとキュー) を自動的に作成して期限切れまたは未配信のメッセージを処理するようにブローカーを設定できます。詳細は、有効期限リソースの自動作成 および AMQ ブローカーの設定のデッドレターリソースの自動作成 を参照してください。
ENTMQBR-2411 - AMQP メッセージのプロパティーとアノテーションに基づくフィルタリング
ブローカーは、期限切れの AMQP メッセージまたは未配信の AMQP メッセージを、設定した期限切れまたはデッドレターキューに移動する前に、アノテーションおよびプロパティーをメッセージに適用するようになりました。クライアントは、これらのプロパティーまたはアノテーションに基づくフィルターを使用して、消費するメッセージを選択できます。詳細については、AMQ ブローカーの設定 の アノテーションに基づく AMQP メッセージのフィルタリング を参照してください。
ENTMQBR-2736 - 新しいリソース監査ロガー
AMQ Broker 7.7 は、新しいリソース監査ロガーを追加します。リソース監査ロガーは、認証、JMX または AMQ 管理コンソールからのブローカーリソースの作成または削除、および管理コンソールでのメッセージの参照に関連するイベントをログに記録します。詳細については、AMQ ブローカーの設定 の ロギング を参照してください。
ENTMQBR-2883 - 大きな AMQP メッセージの処理の設定
AMQ Broker 7.7 では、指定したサイズより大きい AMQP メッセージを大きなメッセージとして処理するように AMQP アクセプターを設定できます。詳細は、AMQ ブローカの設定 の 大きなメッセージを処理するための AMQP アクセプタの設定 を参照してください。
ENTMQBR-2919 - アドレスのメッセージ有効期限値の範囲の設定
AMQ Broker 7.7 では、1 つのアドレスまたは一連のアドレスに対して最小および最大のメッセージ有効期限値を指定できます。詳細については、AMQ ブローカー設定 の メッセージの有効期限の設定 を参照してください。
ENTMQBR-3046 - ブローカーのヘルスチェックを実行しています
AMQ Broker 7.7 では、
artemis check
というコマンドを使用して、ブローカーとそのキューに対してさまざまなヘルスチェックを実行できます。実行できるチェックの詳細については、help
機能を使用してください。以下に例を示します。$ <broker-instance-dir>/bin/artemis help check
ENTMQBR-3134 - AMQ Broker OpenShift Operator: ブローカーデプロイメントの PVC サイズの設定
AMQ Broker 7.7 では、Operator ベースのデプロイメントにカスタムリソース (CR) インスタンスを使用して、永続ストレージのデプロイメントでブローカーが必要とする Persistent Volume Claim (PVC) のサイズを設定できます。詳細は、AMQ Broker を OpenShift にデプロイする の ブローカーのストレージ要件を設定する を参照してください。
ENTMQBR-3162 - 個々のアドレスでのメトリックコレクションの無効化
AMQ Broker 7.7 では、メトリクスプラグインが設定されている場合、特定のアドレスのメトリクスコレクションを無効にすることができます。詳しくは、AMQ Broker の管理 の 特定のアドレスのメトリックコレクションの無効化 を参照してください。
ENTMQBR-3338 - AMQ Broker OpenShift Operator: Broker デプロイメントのリソース制限の設定
AMQ Broker 7.7 では、Operator ベースのデプロイメントにカスタムリソース (CR) インスタンスを使用して、デプロイメント内のブローカーの CPU とメモリーの制限とリクエストを設定できます。詳細は、OpenShift での AMQ Broker のデプロイ の Operator ベースのブローカーデプロイのリソース制限とリクエストの設定 を参照してください。
ENTMQBR-3573 - JVM メトリックコレクションの設定
AMQ Broker 7.7 では、ブローカーのホスト Java 仮想マシン (JVM) に関連するメトリックの標準セットを取得するようにブローカーを設定できます。具体的には、ブローカがガベージコレクション (GC)、メモリー、およびスレッドの JVM メトリックをキャプチャするかどうかを指定できます。詳しくは、AMQ Broker の管理 の JVM メトリックを収集するためのブローカーの設定 を参照してください。
ENTMQBR-3608 - AMQ Broker OpenShift Operator: ブローカーデプロイメントのアドレス設定の設定
AMQ Broker 7.7 では、カスタムリソース (CR) インスタンスを Operator ベースのデプロイメントに使用して、アドレス設定を設定できます。詳細は、AMQ Broker を OpenShift にデプロイする の Operator ベースのブローカーデプロイメント用のアドレスとキューの設定 を参照してください。
ENTMQBR-3746 - AMQ Broker OpenShift Operator: AMQP メッセージの大きなメッセージ処理の設定
AMQ Broker 7.7 では、Operator ベースのデプロイメントにカスタムリソース (CR) インスタンスを使用して、AMQP メッセージの大きなメッセージ処理を設定できます。詳細は、AMQ BrokerをOpenShiftにデプロイする の AMQP メッセージの大きいメッセージ処理の設定 を参照してください。
ENTMQBR-4366 - IBM Z および IBM Power Systems 上の OpenShift Container Platform 内で実行するための AMQ Broker サポートを追加しました
AMQ Broker 7.7 は、IBM Z および IBM Power Systems で RHEL 8 をサポートするブローカーコンテナーイメージを追加します。この追加サポートにより、IBM Z および IBM Power Systems 上の OpenShift Container Platform 内でブローカーのデプロイメントを作成できます。詳細は、Application Templates を使用した OpenShift Container Platform への AMQ Broker のデプロイ を参照してください。
第2章 非推奨の機能
-
7.3 以降、AMQ Broker には Hawtio ディスパッチコンソールプラグインである
dispatch-hawtio-console.war
に同梱されなくなりました。以前のバージョンでは、AMQ Interconnect の管理にディスパッチコンソールを使用していました。ただし、AMQ Interconnect は独自のスタンドアロン Web コンソールを使用するようになりました。 - 7.5 以降では、ネットワークの ping は非推奨にされています。ネットワークの ping は、ネットワークの分離の問題からブローカークラスターを保護することができません。これにより、修復不能なメッセージが失われることがあります。この機能は今後のリリースで削除されます。Red Hat では、ネットワークの ping を使用する既存の AMQ Broker デプロイメントは引き続きサポートされます。ただし、Red Hat は、新しいデプロイメントでネットワーク ping を使用することは推奨しません。高可用性のためのブローカークラスターの設定と、ネットワーク分離の問題を回避するためのガイダンスについては、高可用性の実装 を参照してください。
第3章 テクノロジープレビュー
このセクションでは、AMQ Broker 7.7 のテクノロジープレビュー機能について詳しく説明します。
テクノロジープレビュー機能は、Red Hat の実稼働サービスレベルアグリーメント (SLA) でサポートされておらず、機能的に完全でない可能性があります。Red Hat は、実稼働環境での使用は推奨していません。詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
統合キューとアドレス
統合キューとアドレスを使用すると、ブローカーがクラスターの一部でなくても、ブローカー間でメッセージを送信できます。詳細については、Apache ActiveMQ Artemis ドキュメントの 統合 を参照してください。
第4章 修正された問題
ENTMQBR-1942 - AMQ 7.2、共有ストア、スケールダウンスレーブがアクティブ化されてスケールダウンしようとすると、NullPointer 例外が発生する
以前は、共有ストアを使用してクラスターでスケールダウンするようにスレーブブローカーを設定した場合、マスターブローカーがオフラインになった場合に、スレーブで例外が発生する可能性がありました。この問題は解決されています。
ENTMQBR-3103 - [AMQ7, AMQP, Openwire] OpenWire コンシューマーを使用した AMQP メッセージの消費に関する問題
以前は、メッセージが OpenWire から AMQP に変換されてから OpenWire に戻された場合、そのメッセージは OpenWire クライアントによって消費されなくなりました。たとえば、この状況は次の場合に発生する可能性があります。
1) OpenWire クライアントがブローカーにメッセージを送信した
2) AMQP クライアントがメッセージを消費した
3) AMQP クライアントがメッセージをブローカーに返した
4) OpenWire コンシューマーがメッセージを消費しようとした
この問題は解決されています。
ENTMQBR-3130 - ブローカーの再デプロイ後に Broker Operator がアドレスを再作成しない
以前は、Custom Resource (CR) インスタンスを使用して Operator ベースのブローカーデプロイメントでアドレスを作成した場合、ブローカーを削除してから再デプロイすると、Operator はそれらのアドレスを再作成しませんでした。この問題は解決されています。
ENTMQBR-3137 - Broker Operator がスケールアップ時に CR で作成されたアドレスを自動的にデプロイしない
以前のリリースでは、カスタムリソース (CR) インスタンスを使用して Operator ベースのブローカーデプロイメントでアドレスを作成し、そのデプロイメントのサイズをスケールアップした場合、Operator は既存のアドレスを新しいブローカーインスタンスに自動的にデプロイしませんでした。代わりに、スケールアップされたブローカーのデプロイ用に CR を再デプロイする前に、アドレス CR を削除する必要がありました。この問題は解決されています。ブローカーデプロイメントのサイズをスケールアップすると、Operator は既存のアドレスを新しいブローカーインスタンスに自動的にデプロイします。
ENTMQBR-3228 - アドレス CR の処理時に Operator Pod が正しく認証されない
以前のリリースでは、AMQ Broker Operator を使用して、ログインが必要なブローカー Pod を作成した場合 (つまり、デプロイに使用されるカスタムリソース (CR) で
requireLogin
をtrue
に設定することにより)、ブローカーで作成しようとしたすべてのアドレスが、CR 経由では作成されませんでした。この問題は解決されています。
ENTMQBR-3328 - FQQN のサポートは、キュー名がアドレスと等しいエニーキャストキューに限定されていますというエラーが発生する
以前のリリースでは、クライアントが
artemis producer
コマンドを使用してanycast
ルーティングタイプのキューにメッセージを送信するときに完全修飾キュー名 (FQQN) を指定した場合、キューとそのアドレスの名前が異なる場合、ブローカ接続はエラーを返しました。、たとえば、fqqn://exampleaddress::examplequeue
。この問題は解決されています。
ENTMQBR-3356 - メッセージのスループットが高い場合、AMQP の消費が停止する
以前は、レプリケーションの高可用性 (HA) ポリシーを使用するように設定されたライブバックアップグループ内のブローカーで AMQP メッセージのスループットが非常に高かった場合 (つまり、1 秒あたり 10,000 メッセージ以上のレート)、メッセージの消費が停止することがありました。さらに、ブローカーとクライアントは、Could not complete operations (ブローカー) やRemote did not respond to a drain request in time (クライアント) などのエラーを表示する場合があります。この問題は解決されています。
ENTMQBR-3365 - AMQP のページングが壊れている
デフォルトでは、ページキャッシュが削除された後に最初にメッセージを受け取ると、ブローカーはページ全体をキャッシュに読み込みます。この動作は
read-whole-page
設定パラメーターによって指定され、デフォルト値はtrue
です。read-whole-page
の値をfalse
に設定すると、ブローカーは代わりにメッセージごとにメッセージをページキャッシュに読み込みます。以前は、AMQP プロトコルを使用している場合、メッセージをメッセージごとにキャッシュに読み戻すことは できませんでした。AMQP を使用していた場合は、
read-whole-page
の値がtrue
に設定されていることを確認する必要がありました。この問題は解決されています。
ENTMQBR-3370 - LegacyLDAPSecuritySettingPlugin ignores group changes
以前は、LDAP サーバーで更新を行った場合、ブローカーで設定された
LegacyLDAPSecuritySettingPlugin
セキュリティー設定プラグインが変更をすぐに検出しない場合がありました。たとえば、LDAP サーバー上の既存のグループに新しいユーザーを追加した場合、プラグインは、同じグループ内の既存のユーザーと同じブローカー権限を持つ新しいユーザーをすぐには承認しませんでした。代わりに、このような変更を有効にするには、ブローカーを再起動する必要がありました。この問題は解決されています。
ENTMQBR-3372 - Base64 でエンコードされた keyStorePassword と trustStorePassword の値に/が含まれている場合、Operator を使用して作成されたブローカーの起動に失敗する
以前は、ブローカーで Transport Layer Security (TLS) を設定するときに指定した Base64 エンコードされた
keyStorePassword
およびtrustStorePassword
値に / (つまり、スラッシュ) 文字が含まれていると、Operator を使用して作成されたブローカーインスタンスを開始できませんでした。この問題は解決されています。
ENTMQBR-3380 - AMQP 共有非永続キューが Core と同じように削除されない
以前は、キューに接続されたコンシューマーがなくても、キューに少なくとも 1 つのメッセージが含まれている場合、ブローカーは AMQP プロデューサーによって作成された共有の非永続キューを自動的に削除しませんでした。この問題は解決されています。コアプロトコルの場合と同様に、ブローカーは、共有された永続的でない AMQP キューを 一時的な ものとしてマークするようになりました。これは、接続されたコンシューマーが存在しない場合、ブローカーがそのようなキューを自動的に削除することを意味します。
ENTMQBR-3383 - アドレスのカスタムリソースインスタンスを削除すると、アドレスとメッセージが削除される
以前は、ブローカデプロイメントでアドレスを作成するために使用されたカスタムリソース (CR) インスタンスを削除すると、デプロイメント内のすべてのブローカの既存のアドレスと関連メッセージも削除されました。この問題は解決されています。アドレス CR の
removeFromBrokerOnDelete
と呼ばれる新しい設定項目を使用すると、基礎となるアドレス CR を削除するときに、Operator がブローカーデプロイメント内の既存のアドレスを削除するかどうかを指定できます。デフォルトでは、removeFromBrokerOnDelete
はfalse
に設定されています。これは、既存のアドレスが削除され ない ことを意味します。
ENTMQBR-3386 - AMQ7、メッセージの期限切れ、自動削除 自動作成されたキューが、メッセージの有効期限が切れたときに自動削除されない場合がある
以前は、コンシューマーがキューに接続したことがなく、キュー上のすべてのメッセージが期限切れになった場合、ブローカーは自動作成されたキューを削除しませんでした。この問題は解決されています。この状況では、ブローカーは自動作成されたキューを削除します。
ENTMQBR-3409 - JMX/Jolokia addSecuritySettings - ブローカが再起動するまで権限が処理されない
以前は、Jolokia を使用してアドレスのセキュリティー設定を動的に設定した場合、ブローカーは更新を検出しませんでした。代わりに、変更を有効にするためにブローカーを再起動する必要がありました。この問題は解決されています。
ENTMQBR-3432 - メッセージのスループットが高いと OpenWire の消費が停止する
以前は、レプリケーションの高可用性 (HA) ポリシーを使用するように設定されたライブバックアップグループ内のブローカーが OpenWire メッセージの非常に高いスループット (つまり、1 秒あたり 10,000 メッセージ以上のレート) を経験した場合、メッセージの消費が停止する可能性がありました。さらに、ブローカーとクライアントは、Could not complete operations (ブローカー) やRemote did not respond to a drain request in time (クライアント) などのエラーを表示する場合があります。この問題は解決されています。
ENTMQBR-3490 - createSession () メソッドが java.lang.NullPointerException を出力する
以前は、
javax.jms.Connection.createSession()
を使用して接続でセッションを作成すると、null ポインター例外が発生することがありました。具体的には、この例外は、複数のスレッドが接続を使用していて、createSessionInternal
メソッドが同時に別のスレッドでセッションを作成しようとしたときに、1 つのスレッドが接続を閉じた場合に発生する可能性がありました。この問題は解決されています。現在、このタイプの例外の発生を防ぐ同時実行保護があります。
ENTMQBR-3597 - 起動時にステートフルセットが再作成される
以前は、Operator ベースのブローカーデプロイメントを作成するためにカスタムリソース (CR) インスタンスをデプロイした場合、Operator はデプロイメント用の StatefulSet を作成し、すぐに StatefulSet を削除してからもう一度作成していました。この問題の結果、デプロイ用に作成されたブローカー Pod が開始され、すぐに終了し、その後再び開始されました。この問題は解決されています。
第5章 既知の問題
このセクションでは、AMQ Broker 7.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-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-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-2890 - サイズが n > 1 の CR インスタンスを作成すると、n 番目の ブローカー Pod が 1 度起動し、即座に再起動する
AMQ Broker Operator を介してカスタムリソース (CR) インスタンスを使用してブローカークラスターをデプロイする場合、(CR の
size
属性によって決定される) デプロイの最後のブローカー Pod が起動し、使用可能になる前に一度だけ再起動します。.この問題を回避するには、CR のsize
属性を段階的に増やして、目的のクラスターサイズに到達させます。まず、size
を1
に設定し、ブローカー Pod が開始するのを待ちます。次に、size
を2
に設定し、Pod が開始するのを待ちます。この場合、どのブローカー Pod も使用可能になる前に再起動されません。
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
セクションでconnectionPool
をtrue
に設定する) と、ブローカークライアントを停止する場合でも LDAP プロバイダーへの接続が永久に開かれる可能性があります。そのため、通常の方法でブローカーをシャットダウンしようとしても、ブローカーはシャットダウンしません。代わりに、SIGKILL
などの Linux コマンドを使用してブローカープロセスを終了する必要があります。この状態は、ブローカーの JVM 引数にプールのタイムアウトを指定しても発生します (例:-Dcom.sun.jndi.ldap.connect.pool.timeout=30000
)。また、ブローカーのシャットダウンの試行時にアクティブなクライアントはありません。この問題を回避するには、
login.config
設定ファイルのLDAPLoginModule
セクションにconnectionTimeout
プロパティーの値を設定します。接続プールが接続に対して要求されると、connectionTimeout
プロパティーは、最大プールサイズがすでに到達し、プール内のすべての接続が使用中の場合に、ブローカーが接続を待つ最大時間を指定します。詳細は、AMQ ブローカーの設定 の 認証に LDAP を使用 を参照してください。
ENTMQBR-3617 - 永続性アドレスの hawtio コンソールのユーザー情報が null である
コンシューマーが永続的な共有アドレスを作成すると、AMQ Management Console は関連付けられたユーザーを
null
として表示する場合があります。この問題を回避する方法はありません。
ENTMQBR-3653 - メトリックスプラグインが設定されておらず、メトリックス Web コンテキストが呼び出されると NPE が発生する
ブローカーでメトリック Web コンテキスト (
/metrics
など) を呼び出しても、メトリックプラグインがまだ設定されていない場合、ブローカーは null ポインター例外 (NPE) を表示します。AMQ Broker の Prometheus メトリックスプラグインの設定に関する詳細は、AMQ Broker の Prometheus プラグインの有効化(オンプレミスデプロイメント) または 実行中のブローカーデプロイメントのPrometheus プラグインの有効化(OpenShift デプロイメント) を参照してください。
ENTMQBR-3695 - Prometheus メトリクスプラグインがロードされているが、NPE が発生する
オンプレミスブローカーインスタンスを AMQ Broker 7.7 にアップグレードし、そのブローカーで Prometheus プラグインなどのメトリックプラグインがすでに有効になっている場合、ブローカーはプラグインを読み込みますが、プラグインはブローカーランタイムメトリックを収集しません。さらに、アップグレードされたブローカーでメトリクス Web コンテキスト (
/metrics
など) を呼び出すと、null ポインター例外 (NPE) が表示されます。この問題を回避するには、アップグレードされたブローカーの設定を変更して、AMQ Broker の 管理 の AMQ Broker の Prometheus プラグインを有効にする に示されているようにします。
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 Container Platform 4.6 では、この問題は解決されています。OperatorHub は、お使いのホストプラットフォームに対応する Operator バリアント のみ を表示します。
ENTMQBR-4127 - 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 サイズを拡張します。コンソールで、Storage → Persistent Volume Claims をクリックします。デプロイメントをクリックします。右上の Actions ドロップダウンメニューで
Expand PVC
を選択し、新規の値を入力します。
ENTMQBR-4143 - AMQ Broker Operator: CRD と Operator との間の
pageSizeBytes
プロパティーのタイプの不一致ブローカーデプロイメントのカスタムリソース (CR) インスタンスにアドレス設定を追加する場合 (つまり、
addressSettings.addressSetting
セクションを追加することによって)、アドレス設定にpageSizeBytes
プロパティーを含めることはできません。このプロパティーを含めて値を指定すると、Operator は CR の処理に失敗するか、CR を処理してもブローカーを開始できません。この問題を回避する方法はありません。
ENTMQBR-4144 - AMQ Broker Operator: Operator 設定で
redeliveryCollisionAvoidanceFactor
プロパティーを指定できないブローカデプロイメントのカスタムリソース (CR) インスタンスにアドレス設定設定を追加する場合 (つまり、
addressSettings.addressSetting
セクションを追加することによって)、redeliveryCollisionAvoidanceFactor
プロパティーを含めることはできません。このプロパティーを含めて値を指定すると、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
に設定すると、デプロイメントのブローカーを開始できません。この問題を回避する方法はありません。
default-group rebalance-pause-dispatch
とdefaultGroupRebalancePauseDispatch
の両方のデフォルト値はfalse
です。
ENTMQBR-4163 - AMQ Broker Operator: サンプルカスタムリソースのメモリー制限とメモリー要求の仕様が正しくない
AMQ Broker Operator のバージョン 0.17 に含まれている
broker_activemqartemis_cr.yaml
サンプル CR インスタンスでは、limits.memory
およびrequests.memory
プロパティーの値が正しく指定されていません。これらのプロパティーについて、サンプル CR に含まれる値は1024m
と512m
です。これらのプロパティーでは、小文字のm
接尾辞は無効です。有効な接尾辞は、E
、P
、T
、G
、M
、およびK
、または同等のバイナリーEi
、Pi
、Ti
、Gi
、Mi
、Ki
です。サンプル CR は、OpenShift コマンドラインインターフェイスを使用して Operator をインストールするときにダウンロードおよび抽出するインストールアーカイブのdeploy/crs
ディレクトリーに含まれています。
第6章 重要なリンク
改訂日時:2023-01-28 11:55:18 +1000