Cosminexus RMは,アプリケーションによるメッセージの取り出しなどで不要になったキュー内のメッセージを削除します。
メッセージを削除する方法には,遅延削除と即時削除の二つ方法があります。それぞれの方法について説明します。
遅延削除は,メッセージが不要になった時点で削除せず配信済みの状態にしておき,RMSweepTimerIntervalプロパティ指定値の間隔で一括に削除する方法です。遅延削除はメッセージの取り出しの延長でメッセージを削除しないため,即時削除よりもスループットが優れる場合があります。
なお,非永続リソースアダプタの場合,遅延削除は利用できません。
遅延削除を利用したメッセージの削除の概要を,次の図に示します。
図2-16 遅延削除を利用したメッセージの削除の概要
即時削除は,メッセージが不要になった時点で削除する方法です。そのため,遅延削除よりも一時的に使用するメモリの量を削減できます。即時削除は,アプリケーションによるメッセージの取り出しでのコミット時や,hrmdelmsgコマンド実行時のタイミングで実施されます。
ローカルキューまたはデッドメッセージキュー内のメッセージに即時削除を利用する場合,RMDeleteMessageImmediatelyプロパティにtrueを指定します。
即時削除を利用したメッセージの削除の概要を,次の図に示します。
図2-17 即時削除を利用したメッセージの削除の概要
キューの種類によって利用できる削除方法が異なります。
キューの種類と利用できる削除方法について,次の表に示します。
表2-2 キューの種類と利用できる削除方法
項番 | キューの種類 | 遅延削除 | 即時削除 |
---|---|---|---|
1 | ローカルキュー | ○ | ○※1※2 |
2 | 転送キュー | ○ | × |
3 | 受信用共用キュー | × | ○ |
4 | 送信用共用キュー | - | - |
5 | デッドメッセージキュー | ○ | ○※1 |