Cosminexus V9 アプリケーションサーバ Cosminexus Reliable Messaging
デッドメッセージキューは,有効期限に達したメッセージなどが移動される特別なローカルキューです。システム内に一つだけ指定できます。自システムのアプリケーションは,ローカルキューと同様にデッドメッセージキューから該当するメッセージを受信できますが,デッドメッセージキューにメッセージを送信することはできません。また,デッドメッセージキューに移動したメッセージは,移動前のキューに新しいメッセージとして再登録できます。さらに,hrmstopqueを使用して,アプリケーションのメッセージの受信を抑止することもできます。
デッドメッセージキューは,永続版リソースアダプタの場合だけ利用できます。永続版リソースアダプタでデッドメッセージキューに移動されるメッセージは,非永続版リソースアダプタでは,即削除されます。
デッドメッセージキューの概要を次の図に示します。
図2-7 デッドメッセージキューの概要
- 作成方法
デッドメッセージキューを作成する方法は,ローカルキューと同じです。ただし,RMDeadMessageQueueNameプロパティにキュー名を指定する必要があります。
- <この項の構成>
- (1) デッドメッセージキューへの登録
- (2) サーバ間転送でのデッドメッセージキューへの登録
(1) デッドメッセージキューへの登録
サーバ間転送以外の通信では,次に示す場合に,メッセージはデッドメッセージキューに登録されます。サーバ間転送の場合のデッドメッセージキューへの登録については,「(2) サーバ間転送でのデッドメッセージキューへの登録」を参照してください。
- メッセージが有効期限に達した場合
キューに登録されているメッセージが有効期限に達した場合,そのメッセージはデッドメッセージキューに移動されます。ただし,デッドメッセージキューに登録されているメッセージは,有効期限をチェックされないので対象外です。
また,次に示すときメッセージはデッドメッセージキューに移動されないで削除されます。
(a)RMDeadMessageQueueNameプロパティの指定がないとき
(b)RMDeadMessageQueueNameプロパティに指定されたキューがないとき
(c)メッセージ数超過やDB障害などの要因によって,デッドメッセージキューへの登録に失敗したとき
- メッセージの配送回数が最大値に達した場合
receive()またはreceiveNoWait()メソッドを発行してメッセージを受信するアプリケーションやMessage-driven Beanでメッセージの配信を受けるアプリケーションに,Reliable Messagingがキューから取り出したメッセージを渡すことを配送といいます。
Reliable Messagingが処理するメッセージの配送回数の最大値はRMMaxDeliveryNumプロパティで指定します。
キューに登録されているメッセージの配送回数が最大値に達した場合,そのメッセージはデッドメッセージキューに移動されます。ただし,デッドメッセージキューに登録されているメッセージは,配送回数をチェックされないので対象外です。また,次に示すときメッセージはデッドメッセージキューに移動されないで,配送できる状態になります。
(a)RMDeadMessageQueueNameプロパティの指定がないとき
(b)RMDeadMessageQueueNameプロパティに指定されたキューがないとき
(c)メッセージ数超過やDB障害などの要因によって,デッドメッセージキューへの登録に失敗したとき
(2) サーバ間転送でのデッドメッセージキューへの登録
サーバ間転送では,次に示す場合に,メッセージはデッドメッセージキューに登録されます。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.