クラスタには、1 つのマスターブローカを任意に含めることができます。マスターブローカでは設定変更レコードが維持され、クラスタの持続的な状態の変更が追跡されます。マスターブローカは、クラスタ設定ファイル、またはそれぞれのブローカのインスタンス設定ファイルで、imq.cluster.masterbroker 設定プロパティーによって識別されます。
設定変更レコードには、永続サブスクリプション、および管理者が作成した物理的送信先など、クラスタに関連する持続エンティティーの変更に関する情報が含まれます。クラスタのすべてのブローカは、起動中にマスターブローカを参照し、この持続エンティティーに関する情報を更新します。このような同期は、マスターブローカの障害によって不可能になります。詳細は、「マスターブローカを使用できない場合」を参照してください。
設定変更レコードには重要な情報が含まれるので、定期的にバックアップして、障害が発生した場合に復元できるようにすることが重要です。バックアップから復元しても、バックアップ以降に発生したクラスタの持続的な状態の変更は失われますが、頻繁にバックアップすれば、情報喪失の可能性を最小限に抑えることができます。バックアップ操作と復元操作には、時間の経過とともに増大していく可能性がある設定変更レコード内の変更履歴を、圧縮して最適化するという肯定的な効果もあります。
imqbrokerd コマンドの -backup オプションを使用し、バックアップファイルの名前を指定します。たとえば、次のように指定します。
imqbrokerd -backup mybackuplog
クラスタにあるすべてのブローカをシャットダウンします。
次のコマンドを使用し、マスターブローカの設定変更レコードをバックアップファイルから復元します。
imqbrokerd -restore mybackuplog |
新しい名前やポート番号をマスターブローカに割り当てる場合は、クラスタ設定ファイルの imq.cluster.brokerlist プロパティーと imq.cluster.masterbroker プロパティーをそれぞれ更新します。
クラスタにあるすべてのブローカを再起動します。
クラスタのすべてのブローカでは、持続的な操作を実行するためにマスターブローカが必要になるので、マスターブローカを使用できない場合、クラスタのすべてのブローカでは次の imqcmd サブコマンドがエラーになります。
create dst
destroy dst
update dst
destroy dur
自動作成の物理的送信先および一時的送信先は影響されません。
マスターブローカがない場合、永続サブスクライバを作成したり、永続サブスクリプションから登録解除しようとするすべてのクライアントアプリケーションではエラーが発生します。ただしクライアントは、既存の永続サブスクリプションを指定したり、既存の永続サブスクリプションとやり取りしたりすることはできます。