2016-05-03 15 views
1

2つのMQサーバー(A、B)があるとします。 Bへのフェイルオーバー構成およびこれらのMQサーバーは、各キューを処理するために5分のスケジューラー遅延を構成します。 Aが50キューを持ち、何らかの理由で突然失敗したとき。 MQ Server Bは、Aの50個のキューにあるストアを処理し続けることができますか?またはMQ Bは着信キューを処理できますが、Aでは使用できません。スケジューラー遅延によるActiveMqフェイルオーバー

+0

何を試しましたか? –

+0

まあ、私は私のステージングで何が起こるか分かりません。私はちょうど私のローカルマシンでシミュレートしようとしました。 2クラスタAフェイルオーバーB、50台の待ち行列とシャットダウンA. BはAで待ち行列に入っていません。私のユースケースは、プロセスなしでキューに入れられたメッセージを許可できません。 –

+0

ActiveMQの両方のインスタンスが同じデータベースまたはメッセージストアを使用する構成があります。これは、「共有DBを持つマスタスレーブ構成」と呼ばれます。あなたの助けになるでしょうhttp://activemq.apache.org/shared-file-system-master-slave.html(これは共有ファイルシステム用です)またはhttp://activemq.apache.org /jdbc-master-slave.html(これは共有DB用です) – Vihar

答えて

0

私はあなたがKahaDB用の共有ファイルシステムディレクトリを使ってフェールオーバーをセットアップしたと仮定します。遅延メッセージやスケジュールされたメッセージは、デフォルトのKahaDBデータベースに置かれるのではなく、ローカルの "data"ディレクトリ(つまり、デフォルトではAとB)に置かれます。

共有ディレクトリ(ネットワークディスクなど)を使用するようにスケジューラを設定する必要があります。設定例:

<broker ... schedulerSupport="true" schedulerDirectory="/path/to/shared/directory"> 
関連する問題