付録B.4 グループ
グループについて留意しなければならない点は次のとおりです。
- 〈この項の構成〉
(1) グループの新規作成(切り替え)
Reliable MessagingがReliable Messageの送信側の場合,Reliable Messageに設定するグループIDは,次に示すタイミングで新しいグループに切り替わります。
-
InOrderのグループのReliable Messageに「MessageProcessingFailure」および「FeatureNotSupported」以外のRM-Faultが返されたとき
-
グループのReliable Messageに「GroupAborted」のRM-Faultが返されたとき
-
グループ有効期限が過ぎたとき
-
グループ有効期限にReliable Messageの有効期限が追い付いたとき
-
シーケンス番号が最大値に到達したとき
-
非永続キューに属するグループを再起動したとき
切り替わり以降に新たに送信されたメッセージは,新しいグループのメッセージとして送信されます。
(2) グループの削除
Reliable MessagingがReliable Messageの受信側の場合,グループの有効期限が超過したときにグループ情報を破棄します。
グループ情報を破棄したあとに,破棄したグループのReliable Messageを受信した場合は,新しいグループの最初のメッセージとして扱います。
(3) グループの閉鎖
Reliable MessagingがReliable Messageの受信側の場合,次に示すタイミングでグループを閉鎖します。
-
InOrderのグループのReliable Messageに「MessageProcessingFailure」および「FeatureNotSupported」以外のRM-Faultを返す場合(hrmskipmsgでスキップしたメッセージに「PermanentProcessingFailure」を返す場合を除く)
-
InOrderのグループで,滞留しているメッセージが有効期限切れになった場合
-
非永続キューに属するグループについては,Reliable Messagingが再起動した場合
閉鎖されたグループのReliable Messageを受信した場合,「GroupAborted」のRM-Faultを返します。閉鎖されたグループは,グループ削除のタイミングで削除されます。
(4) グループ有効期限の更新
- Reliable MessagingがReliable Messageの送信側の場合
-
同一グループで送信するすべてのReliable Messageに,同一のグループ有効期限を設定します。
- Reliable MessagingがReliable Messageの受信側の場合
-
グループの削除を判断するためのグループ有効期限に,グループで受信した最初のReliable Messageのグループ有効期限を使用します。
(5) GroupMaxIdleDurationによるグループの削除
GroupMaxIdleDurationによるグループの削除はサポートしません。GroupMaxIdleDurationが指定されたReliable Messageを受信した場合,Reliable Messagingは「FeatureNotSupported」のRM-Faultを返します。