フェイルオーバー時のトリガ起動
failed-overトリガを起動できるのは、スタンバイサーバが新しいマスターサーバになり、p4 failoverコマンドが正常に実行されて新しいマスターサーバが稼働を開始した場合のみです。
以下の特殊変数を使用することができます。
- %standbyserverid%: フェイルオーバーの前にスタンバイサーバのserverIDにまで拡張する場合は、この変数を使用します。
- %standbyserverport%: フェイルオーバーの前にスタンバイサーバのP4PORTにまで拡張する場合は、この変数を使用します。
フェイルオーバートリガを定義するには、p4 triggersコマンドを使用して、以下の構文でトリガを定義します。
triggerName failed-over failed-over command
フェイルオーバートリガは、必要な数だけ作成することができます(まったく作成しなくてもかまいません)。 各フェイルオーバートリガは非同期的に動作し、他のトリガとは独立しています。そのため、特定のトリガが失敗しても、他のトリガに影響することはありません。
以下の表に、failed-overトリガ定義の各フィールドを示します。
フィールド | 意味 |
---|---|
name |
トリガスクリプトの名前(例: testTrigger2) |
|
「failed-over」と指定する必要があります |
|
「failed-over」と指定する必要があります |
|
フェイルオーバーが正常に完了してマスターサーバが再起動したときにHelixサーバによって実行されるトリガです。 この「command」フィールドには、Helixサーバがそのトリガコマンドを検索して実行できるような形式で値を指定する必要があります。 ここでは通常、スクリプトへの呼び出しをトリガコマンドとして指定します。 このトリガコマンドは、引用符で囲む必要があります。 その際、トリガコマンドで解析可能な引数を指定することができます(Helixサーバのトリガ変数など)。 |
「ハートビートでのトリガ(サーバの応答性)」も参照してください。
例
Triggers:フィールドで、以下のようにフェイルオーバートリガを指定することができます。
testTrigger failed-over failed-over "perl '%serverroot%'/test.pl '%serverport%' '%serverid%' '%standbyserverid%' '%standbyserverport%'" testTrigger2 failed-over failed-over "perl '%serverroot%'/test.pl '%serverport%' '%serverid%' '%standbyserverid%' '%standbyserverport%'" testTrigger3 failed-over failed-over "perl '%serverroot%'/test.pl '%serverport%' '%serverid%' '%standbyserverid%' '%standbyserverport%'"