WS-ReliableMessaging シーケンス再割り当て
状況によっては、WS-ReliableMessaging 実装はシーケンス関連の障害からリカバリーすることができ、アプリケーションは障害自体を処理する必要なく続行できます。リカバリーが失敗した場合は、アプリケーションは障害を処理する必要があります。
信頼できるメッセージ・シーケンスに対する要求をサーバーが受け取ったが、そのシーケンスがメッセージ処理には使用可能でなくなった場合、SOAP 障害が生成されます。障害に以下のいずれかの障害コードが含まれていて、メッセージ交換パターンが非同期または同期の片方向である場合、ランタイム環境は、同じエンドポイントに新規シーケンスを作成し、元のシーケンスで配信されるはずだったメッセージをすべて再送します。
- wsrm:SequenceTerminated
- wsrm:MessageNumberRollover
- wsrm:UnknownSequence
これ以降の、ターゲット・エンドポイントへのメッセージも、新規シーケンスで送信されます。
新規シーケンスの作成が失敗した場合、元の障害がクライアントに戻されます。クライアント・アプリケーションは、WS-ReliableMessaging システム・プログラミング・インターフェース (SPI) を使用して、その障害を検出し、メッセージを再送するために新しいシーケンスを作成する必要があります。
アプリケーションが非同期メッセージングを使用している場合、プロバイダーからクライアントへの応答もこの方法で再割り当てされることがあります。シーケンス再割り当ては、メッセージ交換パターンが同期双方向の場合は発生しません。
注: 元のシーケンスと新規シーケンスの両方が、管理コンソールのパネルに表示されます。元のシーケンスは 12 時間後に自動的に削除されるので、削除しないでください。新規シーケンスが使用されている間に元のシーケンスを削除すると、それ以降、メッセージは新規シーケンスで送信されなくなります。