第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 圧縮
bytemessage
throwsjava.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.NullPointerException
in 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)およびメンテナンスリリースで解決された問題の詳細は、以下のアーティクルを参照してください。