5.5.4. フェイルオーバーとフェイルバック手順 (Failover and Failback Procedures)
ピアとのトランスポート障害が検出された場合, 可能なら未処理のリクエストをすべて別のエージェントに転送する必要があります. これを一般に「フェイルオーバー」(failover) と呼びます.
フェイルオーバーを行うには, ピアごとに未処理メッセージキューを維持します. 応答を受け取ると対応するリクエストをキューから外します. Hop-by-Hop Identifier で応答とキュー内リクエストを対応付けます.
トランスポート障害時, 可能ならキュー内のすべてのメッセージを T フラグを付けて代替エージェントに送ります. クライアントまたはエージェントの起動時も, 非揮発ストレージに残る未送信レコードに T フラグを付けます. 転送できない例は, メッセージの宛先が固定で利用不能ピアが最終宛先の場合です (Destination-Host AVP 参照). その場合エージェントは E ビットと Result-Code DIAMETER_UNABLE_TO_DELIVER の応答を返す必要があります.
フェイルオーバーにより同一のリクエストまたは応答が複数届いてもよいことに注意してください (MAY). 重複の識別には Diameter ヘッダの End-to-End Identifier と Origin-Host AVP を使わなければなりません (MUST).
セクション 2.1 のとおり, 障害ピアとの接続を定期的に再確立する試みをすべきです. 接続が復旧すれば再びそのピアに転送できます. これを「フェイルバック」(failback) と呼びます.