実行される動的起動のタイプと実行結果は、指定されたオーバーライドの詳細情報によって異なります。
動的オーバーライドの処理方法
メディエーション・モジュール構成としては、以下のような組み合わせが考えられます。
- メディエーション・モジュールに複数のインポートが含まれている。
- インポートはワイヤーされている場合もそうでない場合もある。
どのインポートをランタイム中で使用するかの決定に使用されるアルゴリズムは、以下のパラメーターに基づきます (評価の優先順位の高い順に示します)。
- ターゲット・インポート
- BindingType
- Wire
- URI 接頭部
さまざまな設定と、その結果のランタイム動作の例を以下に示します (「指定なし」の値は、着信メッセージでそのフィールドの値が指定されていないという意味です。「任意」とは、そのフィールドの値を指定しなくてもかまわない、または指定しても無視される、という意味です)。
表 1. 動的オーバーライドの例 1Import |
インポート名 |
BindingType |
任意 |
Wire |
任意 |
Address |
設定されない |
Result |
メディエーション・モジュールを作成してデプロイしたときに定義したアドレスに基づいて、指定のターゲット・インポートが起動します。インポート名が指定されているため、bindingType は無視されます。 |
表 2. 動的オーバーライドの例 2BindingType |
設定されない |
Wire |
JMS インポート |
Address |
JMS URI |
Result |
ワイヤーされた JMS インポートを使用して JMS 呼び出しが実行されます |
表 3. 動的オーバーライドの例 3Import |
指定なし |
BindingType |
Web サービス |
Wire |
JMS インポート |
Address |
JMS または HTTP の URI |
Result |
指定されている Address と BindingType に基づいて、純粋な動的 Web サービス起動が実行されます。 |
動的起動のエラー処理
以下のいずれかの条件に該当する場合は、実行時例外が発生します。
- 対象のエンドポイントを指定する URI の構文が無効な場合。
- URI で指定されているエンドポイントが存在しない場合。
- 指定のターゲット・インポートが存在しない場合。
- 指定のエンドポイントの URI の形式とインポート・バインディングのタイプに互換性がない場合。
メディエーション・モジュールによって例外がスローされ、応答フローに返されます。