例外宛先
例外宛先は、指定されたターゲット宛先に配信または保持できず、破棄もできないメッセージを保管する場所です。メッセージに対して指定されたサービス品質で要求されている場合は、例外宛先によってメッセージの損失を防ぐことができます。
- サービス統合が、指定されたターゲット宛先にメッセージを配信できず、メッセージのサービス品質の設定によってメッセージを破棄できない場合。サービス統合は、メッセージを例外宛先に配信します。
- メッセージが、トランザクション・コンシューマーへの配信の最大試行回数を超えた場合。この状況に陥る可能性があるのは、トランザクション・コンシューマーに障害が発生したため、メッセージがバックアウトし、もう一度コンシュームされる処理が繰り返された場合です。 配信の限界 (1 メッセージ当たりの最大デリバリー失敗数) に達した場合、メッセージは例外宛先に送信されます。
- メッセージを含む宛先は削除されます。これらのメッセージは、例外宛先に移動されます。
- 関連するメッセージング・エンジンの、デフォルトの例外宛先を使用します。
各メッセージング・エンジンには、 _SYSTEM.Exception.Destination.me_name と呼ばれる、 メッセージング・エンジン作成時に作成されるデフォルトの例外宛先があります。このデフォルトの例外宛先は、メッセージング・エンジンにローカライズされたバス宛先に配信できないメッセージを保管します。 このデフォルトの例外宛先を使用すると、 管理者は、メッセージング・エンジンに配信できないすべてのメッセージに、単一の場所でアクセスできます。注: デフォルトの例外宛先は変更できません。また削除もしないでください。
- 関連リソースに関連付けられた特定の例外宛先、例えばキュー宛先、トピック・スペース宛先、サービス統合バス・リンク、または WebSphere MQ リンクを使用します。
宛先に関連付けられた例外宛先が使用されるのは、トランザクション・コンシューマーへの配信の最大試行回数を超えたためにメッセージが配信できなかった場合です。特定の例外宛先をキュー宛先またはトピック・スペース宛先に使用する場合、管理者は、その宛先への配信不能メッセージに単一の場所からアクセスできます。
リンクに関連付けられた例外宛先が使用されるのは、ターゲット宛先がいっぱいか、存在しないためにメッセージが配信できなかった場合です。
例外宛先はキュー宛先でなければなりませんが、ローカルまたはリモートのいずれかでも構いません。 例外宛先は、その例外宛先を使用するように別のリソースを構成する前に、既に存在している必要があります。 例外宛先がキューでない場合、またはメッセージの着信時に存在しない場合、メッセージは、 関連するメッセージング・エンジンのデフォルトの例外宛先に転送されます。
バスに対して例外宛先を構成することはできません。したがって、バス上の各宛先に対して例外宛先を構成する必要があります。
- 配信不能メッセージは、いずれの例外宛先にも転送しないで、「なし」を指定してください。
メッセージ配信の試みは継続します。サービス統合バス・リンクの場合、配信不能メッセージは、同じ宛先への配信を待っている他のメッセージの処理をブロックする場合があります。WebSphere MQ リンクの場合、配信不能メッセージは、同じバスへのリンク経由での配信を待っている他のメッセージの処理をブロックする場合があります。
個別メッセージのプロパティーで設定されているレポート・オプションは、例外宛先の処理に影響を与えます。設定されたレポート・オプションによって、サービス統合がメッセージを例外宛先に送信する条件に当てはまる場合は、サービス統合はレポート・メッセージをメッセージの応答 (reply-to) 宛先に送信するか、例外宛先に送信する代わりにメッセージを破棄するかのいずれか、あるいはその両方を実行します。
- ベスト・エフォート・メッセージは、ターゲット宛先に配信できない場合は常に廃棄されます。すなわち例外宛先を利用することはありません。
- メッセージは、正常に宛先に配信されるまでは、コンシューマーに対して使用可能ではありません。
サービス統合は、例外宛先に送信されるメッセージの順序は保証できません。このため、 メッセージの順序が重要である場合は、例外宛先を使用しないように バス宛先を構成することができます。この場合、その宛先に対して指定された1 メッセージ当たりの最大デリバリー失敗数制限は無視され、メッセージはコンシューマーで使用可能のままになります。 同期コンシューマーは繰り返しメッセージの取得を試み、メッセージ駆動型 Bean および他の非同期コンシューマーは繰り返しメッセージをコンシュームするよう試みます。この状況は、宛先からメッセージが除去されるか (例えば管理コンソールを使用して管理者が除去)、コンシューマーがロールバックを行わずに メッセージを処理できるようになるまで続きます。