第8章 既知の問題
このセクションでは、AMQ Broker 7.11 の既知の問題について説明します。
ENTMQBR-8106 - AMQ Broker Drainer pod doesn’t function properly after changing MessageMigration in CR
実行中のブローカーデプロイメントでは
messageMigration
属性の値を変更できません。この問題を回避するには、新しいActiveMQ Artemis
CR のmessageMigration
属性に必要な値を設定し、新しいブローカーデプロイメントを作成する必要があります。
ENTMQBR-8166 - UseClientAuth=true の自己署名証明書により、Operator と Jolokia の通信が妨げられる
ActiveMQ Artemis
CR のconsole
セクションでuseClientAuth
属性がtrue
に設定されている場合、Operator はブローカー上で特定の機能 (アドレスの作成など) を設定できません。Operator ログに、remote error: tls: bad certificate
で終わるエラーメッセージが表示されます。
ENTMQBR-7385 - 遅いコンシューマーのフェデレーションキューでメッセージがフロップする
ローカルアプリケーションコンシューマーが非常に遅い場合、またはメッセージを消費できない場合、メッセージはアプリケーションコンシューマーによって最終的に消費されるまでに、フェデレーションされた接続を介して何度も送受信される可能性があります。
ENTMQBR-7820 - [Operator] 7.11.0 OPR1 Operator ログにリストされているサポート対象バージョンが間違っている
Operator ログには、AMQ Broker イメージバージョン 7.10.0、7.10.1、7.10.2、7.11.0、7.8.1、7.8.2、7.8.3、7.9.0、7.9.1、7.9.2、7.9.3、および 7.9.4 のサポートがリストされています。Operator は、実際には、7.10.0 以降の AMQ Broker イメージバージョンをサポートしています。
ENTMQBR-7359 - 7.10.0 Operator による認証情報シークレットの現在の処理方法を変更
Operator は、ブローカーに接続するための管理者のユーザー名とパスワードをシークレットに保存します。デフォルトのシークレット名は
<custom-resource-name>-credentials-secret
の形式です。シークレットは手動で作成するか、Operator による作成を許可できます。7.10.0 より前のカスタムリソースで
adminUser
およびadminPassword
属性が設定されている場合、Operator は手動で作成されたシークレットをこれらの属性の値で更新します。7.10.0 以降、Operator は手動で作成されたシークレットを更新しなくなりました。したがって、CR のadminUser
およびadminPassword
属性の値を変更する場合は、次のいずれかを行う必要があります。- 新しいユーザー名とパスワードでシークレットを更新します。
-
シークレットを削除し、Operator がシークレットを作成できるようにします。Operator がシークレットを作成する場合、
adminUser
およびadminPassword
属性が CR で指定されていればその値が追加されます。これらの属性が CR にない場合、Operator はシークレットの認証情報をランダムに生成します。
ENTMQBR-7111 - Operator の 7.10 バージョンは、アップグレード中に StatefulSet を削除する傾向がある
AMQ Broker Operator 7.10.0 にアップグレードする場合、または AMQ Broker Operator 7.10.0 からアップグレードする場合、新しい Operator は調整プロセス中にデプロイメントごとに既存の StatefulSet を自動的に削除します。Operator が StatefulSet を削除すると、既存のブローカー Pod が削除され、一時的なブローカーの停止が発生します。
Operator が StatefulSet を削除する前に、次のコマンドを実行して StatefulSet を手動で削除し、実行中の Pod を孤立させることで、この問題を回避できます: oc delete statefulset <statefulset-name> --cascade=orphan
アップグレードプロセス中に StatefulSet を手動で削除すると、新しい Operator は実行中の Pod を削除せずに StatefulSet を調整できます。詳細については、OpenShift への AMQ Broker のデプロイ の OperatorHub を使用した Operator のアップグレード を参照してください。
ENTMQBR-6473 - スキーマ URL の変更により設定に互換性がない
バージョン 7.9 または 7.10 インスタンスで以前のリリースからのブローカーインスタンス設定の使用を試みた場合、スキーマ URL を変更したことで互換性のない設定があると、ブローカーがクラッシュします。この問題を回避するには、Linux での 7.9.0 から 7.10.0 へのアップグレード の説明に従って、関連する設定ファイル内のスキーマ URL を更新します。
ENTMQBR-4813 大きなメッセージと複数の C++ サブスクライバーの使用により AsynchronousCloseException が発生する
AMQP プロトコルを使用する複数の C++ パブリッシャークライアントがサブスクライバーおよびブローカーと同じホストで実行され、パブリッシャーが大きなメッセージを送信すると、サブスクライバーの 1 つがクラッシュします。
ENTMQBR-5749 - OperatorHub に表示されるがサポートされていない Operator を削除する
OperatorHub からの Operator のデプロイ で説明されている Operator と Operator チャネルのみがサポートされています。Operator の公開に関連する技術的な理由により、他の Operator とチャネルが Operator Hub に表示されますが、無視するようにしてください。参考までに、表示されるがサポートされない Operator を次のリストに示しています。
- Red Hat Integration-AMQ Broker LTS - すべてのチャネル
- Red Hat Integration-AMQ Broker - alpha、current、および current-76
ENTMQBR-569 - ID を OpenWire から AMQP へ変換すると、ID をバイナリーとして送信する
A-MQ 6 OpenWire クライアントから AMQP クライアントに相互プロトコルを通信する場合、追加の情報はアプリケーションメッセージプロパティーにエンコードされます。これは、ブローカーによって内部で使用される無害な情報であり、無視することができます。
ENTMQBR-655 - [AMQP]
populate-validated-user
が有効になっているとメッセージを送信できない設定オプション
populate-validated-user
は、AMQP プロトコルを使用して生成されたメッセージではサポートされません。
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 クライアントがメッセージを送信している間にブローカーが backup にフェイルオーバーすると、フェイルオーバー時にブローカーへ配信されるメッセージが失われる可能性があります。この問題を回避するには、承認する前にブローカーがメッセージを永続化していることを確認します。
ENTMQBR-3331 - ステートフルセットコントローラーが CreateContainerError から回復できず、Operator がブロックされる
AMQ Broker Operator が設定エラーのあるカスタムリソース (CR) からステートフルセットを作成すると、ステートフルセットコントローラーは、エラーが解決されたときに更新されたステートフルセットをロールアウトできません。
たとえば、メインブローカ CR の
image
属性の値にスペルミスがあると、ステートフルセットコントローラーによって作成された最初の Pod のステータスがPending
のままになります。その後、スペルミスを修正して CR の変更を適用すると、AMQ Broker Operator はステートフルセットを更新します。ただし、Kubernetes の既知の問題により、ステートフルセットコントローラーは更新されたステートフルセットをロールアウトできません。コントローラーはPending
ステータスの Pod がReady
になるまで無期限に待機するため、新しい Pod はデプロイされません。この問題を回避するには、
Pending
ステータスの Pod を削除して、ステートフルセットコントローラーが新しい Pod をデプロイできるようにする必要があります。どの Pod のステータスがPending
であるかを確認するには、次のコマンドを使用します:oc get pods --field-selector=status.phase=Pending
。Pod を削除するには、oc delete pod <pod name>
コマンドを使用します。
ENTMQBR-3846 - MQTT クライアントがブローカーの再起動時に再接続されない
ブローカーを再起動するか、ブローカーがフェイルオーバーすると、アクティブなブローカーは、以前に接続された MQTT クライアントの接続を復元しません。この問題を回避するには、MQTT クライアントを再接続するのに、クライアントで
subscribe()
メソッドを手動で呼び出す必要があります。
ENTMQBR-4127 - AMQ Broker Operator: Operator によって生成されるルート (Route) 名が 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 サイズを拡張します。コンソールで、
をクリックします。デプロイメントをクリックします。右上の Actions ドロップダウンメニューで Expand PVC
を選択し、新規の値を入力します。