サーバー複数台構成におけるリカバリー機能

複数台のフローサービスでチェックポイント情報を共有することで、1つのフローサービスが使用不可能になった場合も別のフローサービスでリトライすることができます。
フローサービスは個々を識別するために「サーバーID」、「サーバー名」を持っています。
ここでは各サーバー上のフローサービスのことをサーバーと呼びます。

複数台概要

事前準備

複数台のサーバーでは、構成する全サーバーで以下の設定を同じ値にする必要があり、管理コンソールの「設定」-「サービス」-「フロー」-「チェックポイント」で設定します。

「サーバーID」はフローサービスの初回起動時に自動で設定され、「サーバー名」にも同じ値が設定されますが、管理コンソールの「設定」-「サービス」-「フロー」-「サーバー」で「サーバー名」に識別しやすい名前を設定することができます。

管理コンソールの「ツール」-「サービス」-「一覧」で、「FlowService」を「停止」した後に再度「起動」します。 これで複数台構成のサーバーを使用するための準備は完了です。

メモ

構成するサーバーの起動順は動作に影響しません。

1台のサーバーでも問題なく動作します。

使用方法

各サーバーの起動が完了した時点で、チェックポイント情報の共有は開始されています。
構成するサーバーの状態を確認するには、管理コンソールの「状態」-「フロー」-「サーバー一覧」で確認します。

サーバー一覧

構成するサーバーで動作しているチェックポイントフローのステータスは、管理コンソールの「状態」-「フロー」-「ステータス一覧」で確認します。

ステータス一覧

フローの共有

各サーバー間でチェックポイントフローのリトライ処理を共有するには、全サーバーに同じチェックポイントフローが存在する必要があります。 まず、チェックポイントフローの開始コンポーネントで次の設定を行います。
フローの開始コンポーネントで以下の設定を行います。

次に、共有するチェックポイントフローを含むプロジェクトファイルを、バージョン管理機能などを使用して各サーバーに配布します。

注意

構成する1台のサーバーでフローの編集を行い、全サーバーのフローが同じフローになっていない状態でチェックポイントフローのリトライ、再実行が行われた場合、予期せぬ動作をする場合があります。

チェックポイントフローの他サーバーによるリトライ

チェックポイントフローの実行中、もしくは実行エラーとなりリトライ待ち状態のときに、サーバーに不具合が起きてサーバーが異常停止してしまった場合、他サーバーがリトライ処理を引き継ぎます。
他サーバーの異常を検知した場合、リカバリー処理を実行します。

以下のようなリカバリー手順となります。

  1. 異常停止サーバーのリトライ待ち状態のリクエストを他サーバーでのリトライ可能な状態に変更します。
  2. 構成する各サーバーは、変更された各リクエストを自サーバーでのリトライ処理に組み込みます。
  3. 各サーバーでリトライが行われます。

チェックポイントフローの他サーバーからの再実行

チェックポイントフローが実行エラーとなりステータスが「リトライ待ち」もしくは「エラー」となっている場合、構成する他のサーバーから再実行を行うことができます。
管理コンソールの「状態」-「フロー」-「ステータス一覧」で、対象サーバーのリクエストを表示し、画面の右側にある再実行アイコンをクリックします。

注意

他サーバーのリクエストを再実行する場合、そのリクエストの所有者はリクエストを再実行するサーバーへと変更されます。
リトライ回数が上限に達していない状態の他サーバーのリクエストを再実行しエラーとなった場合、それ以降のリトライは新たに所有者となったサーバーで行われるようになります。

 

▲ このページのトップへ