ページの先頭行へ戻る
Interstage Service Integrator V9.4.1 解説書
Interstage

2.4.13 メディエータファンクションの実行(シーケンスエンジン)

ユーザが指定した順に、メディエータファンクションを呼び出すのがシーケンスエンジンです。シーケンスエンジンは、受信したメッセージを指定した順に加工・編集し、サービスやサービス利用側アプリケーションに結果を送信します。
メディエータファンクションとして作成するユーザプログラムに、エラー時の処理を登録しておくと、エラー発生時に自動的に呼び出されます。

シーケンスエンジンは、メディエータファンクションの初期処理、実行処理、終了処理など処理全体の流れを制御します。

初期処理

ユーザが指定した順序で、すべてのメディエータファンクションの初期処理を実行します。
メディエータファンクション内に初期処理が登録されていない場合は、次のステップに移ります。

図2.41 初期処理の実行

実行処理

初期処理が完了すると、次にメディエータファンクションのサービス実行処理を実行します。
また、条件分岐機能を使用することで、処理の経路を動的に変更することができます。

図2.42 サービス実行処理の実行

終了処理

サービス実行処理が完了すると、次にすべてのメディエータファンクションの終了処理を実行します。
メディエータファンクション内に終了処理が登録されていない場合は、次のステップに移ります。
すべての終了処理が完了すると、シーケンスを終了します。

図2.43 終了処理の実行

エラー発生時の処理ルート

メディエータファンクション内にエラー時の処理を登録しておくと、メディエータファンクション実行時にエラーが発生した場合、エラー時の処理が実行されます。この場合、エラーが発生した1つ前のステップから通常とは逆の順序で実行されます。また、条件分岐機能を使用している場合は、実行処理で実行済みのメディエータファンクションのキャンセル処理だけが実行されます。
以下は、ユーザアプリケーションAがエラー時の処理として、キャンセル処理を登録していた場合の、ユーザアプリケーションBでエラーが発生したときの動作イメージです。

図2.44 キャンセル処理の実行

エラーハンドリング

エラーが発生した場合に別のシーケンスを呼び出すことができます。エラー発生時に呼び出すシーケンスに、エラー処理メディエータファンクションを指定することで、例外処理を段階的に整備できます。
エラーハンドリングのシーケンスが呼び出されるタイミングは、上記のエラー発生時の処理、および終了処理が完了したあとです。

エラーハンドリングのシーケンスには、以下の情報をもつ共通メッセージが渡されます。

リトライ

エラーが発生した場合にシーケンスのリトライを行うことができます。
リトライは、上記のエラー発生時の処理、および終了処理が完了したあとに、初期処理から実行をやりなおします。
また、エラーハンドリングを指定している場合、リトライがすべて失敗したあとにエラーハンドリングで指定されたシーケンスを呼び出します。