Magic xpiは、様々な不具合や障害に対して自動的に復旧することができます。
プロジェクトを設計する前に、最初にサーバのアーキテクチャを理解することを推奨します。サーバのアーキテクチャがどのように動作するかの視覚的な説明は、ここをクリックしてください。
[フロープロパティ]ダイアログボックスの[リカバリポリシー]プロパティで、回復メカニズムのポリシーを定義します。リカバリポリシーは、リニアなフローでのみ有効です。リカバリは、3つのレベルで行われます。
詳細は、以下で説明しています。
ExceptionMessageBoxDisplayフラグは、スレッドが異常終了した場合の動作を定義します。詳細は、ここをクリックしてください。 |
Magic xpiコンポーネントを実行しているPCまたはインスタンスで障害が発生したり、シャットダウンしたり、ネットワークから切り離されたり、あるいは、グリッド・コンポーネントのうちの1つがアボートしたり、機能を停止した場合、自動的に完全にサービスを提供し続ける回復メカニズムをグリッドには備えられています。
すべてのグリッド・サービスは連続的に処理を継続します、そして、少なくとも1台のPCがまだ実行している限り、データは失われません。
Magic xpiのワーカを実行しているPCに障害が発生した場合、エンジンまたはワーカの障害に対する回復メカニズムが起動されます。これらのメカニズムについては、以下に詳細があります。
Magic xpiエンジンまたはワーカのうちのどちらかが予期せずアボートした場合、リカバリメカニズムは3つの部分を伴います。
識別:…… 各ワーカとエンジンは、フローリクエストメッセージを使用して状態をSpaceに報告します。これは、並列分岐、スタンドアロン分岐および、トリガとオート開始フローの両方によるフロー実行が含まれています。専用のMagic処理装置は、これらのリポートを監視します。一旦処理装置が、定義されたタイムアウト内にレポートしなかったワーカやエンジンを特定すると、以下の処理が実行されます。
ワーカ(トリガかフロー)の場合、処理装置は、エンジンにワーカの実行状態を問い合わせます。
エンジンの場合、処理装置は、エンジンがまだ有効ならば、グリッドサービス・エージェント(GSA)にエンジンの起動を要求します。
エンジンとワーカのリカバリ処理……応答しないか、存在しないエンジンが特定されると、GSAは既存のエンジンを終了して、異常終了したエンジンを置き換えるために新しく起動させます。スレッドの異常終了の場合、エンジンは同じエンジンで新しいワーカを開始するように指示されます。
ワーカの回復処理 ……ワーカの処理はルートフロー、または一組のフローの実行ツリーを参照します。そして、一つのビジネストランザクションを構成します。回復ガイドラインは以下の通りです。
リカバリは、ワーカの処理を開始するルートフローに対して定義され、個々のフロー向けには定義されません(子フローまたは子コンテキストのリカバリ定義は、無視されます)。
セーブポイントは、ルートフローのリニア分岐上でのみ保存されます(子フローまたは子コンテキスト内で定義された任意のセーブポイントは、無視されます)。
ワーカ処理は、(一つ以上の個別の物理サーバで実行している)一つ以上のワーカ(並行分岐の場合)によって実行されます。
トリガが起動されると、リカバリメカニズムは以下の通りに動作します。
現在、ワーカ処理の要素を実行するワーカが異常終了した場合、ワーカ処理全体がアボートされ、ルートフローの[フロープロパティ]ダイアログボックスで定義されるクリーンアップ・フローが呼び出されます。リカバリメカニズムが適用された場合以下のようになります。
アボートを選択すると、これ以上の処理は必要ありません。
再起動を選択した場合、Magic xpiは最初にそれを起動させたペイロードでルートフローを再開します。元のデータは、決して失われません。
セーブポイントを選択した場合、Magic xpiは最後のセーブポイントから開始されるか、最後のセーブポイントが存在しない場合はフローを再開します。
リカバリポリシーを選択しない場合は、デフォルトは None になります。 |
フローに設定された FlowTimeoutGraceTimeのタイムアウトが超過した後で、関連するMgxpiServer.EXEファイルは、同じルートフローシーケンスID(FSID)を提供するすべての関連したワーカを終了します。次にルートフロー上に定義されたルートフローのタイムアウトポリシーを実行します。
Magic xpiサーバがステータスの報告に失敗しているが、MgxpiServer.EXE の処理がまだ実行している場合、MgxpiServer.EXEの処理は定義済みの猶予期間の後に終了されます。猶予時間は、状況に応じて 20〜120秒の間になります。次に、GSAは、Magic xpiサーバを置き換えるために新しいエンジンを再起動させます。Magic xpiサーバが異常終了した場合のリカバリポリシーは、初期設定をもとにしてMagic xpiサーバを起動することです。サーバの異常終了によって終了したスレッドは、それらのリカバリポリシーに従って回復されます。
HTTPトリガ
Mgreq.iniファイルに設定されている RequesterTimeoutSecは、HTTPトリガのタイムアウトを定義します。RequesterTimeoutSec が異常終了したフローのリカバリポリシーを実行するためにかかる時間より短い場合、回復処理は実行されません。
関連トピック: