Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
ここでは,CJMSPブローカーによる送信先の管理,およびルーティングサービスについて説明します。
CJMSPブローカーは,物理的な送信先として,キューやトピックをシステムのメモリ内に作成・管理します。
ルーティングサービスは,リソースを効率的に使用しながら,プロデューサー,コンシューマーと送信先間での確実で円滑なメッセージの送受信を実現するためのサービスです。
送信先は,作成方法および存在期間によって,次の2種類に分類できます。
それぞれの送信先の特徴について説明します。
また,通常のメッセージ送受信に使用する送信先以外に,デッドメッセージキューというCJMSPブローカーによって自動的に作成される送信先があります。
デッドメッセージキューは,CJMSPブローカーを最初に起動したタイミングで作成されます。この送信先には,CJMSPブローカーによって,次のメッセージ(デッドメッセージ)が登録されます。
デッドメッセージキューには,ほかの送信先で処理できずに廃棄されたメッセージが格納されるため,メッセージ送受信で発生した問題についての調査などに利用できます。
デッドメッセージキューの管理については,「(3) デッドメッセージキューの管理」を参照してください。
CJMSPブローカーでは,送信先を設定・管理するために,次の処理を実行できます。
これらの処理は,コマンドで実行できます。詳細は,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「5.3 CJMSPブローカー管理のコマンドの詳細」を参照してください。
デッドメッセージキューは,すべての送信先で必ず使用する設定になっています。
メッセージがデッドメッセージキューに登録された場合の処理については,メッセージごとのメッセージプロパティに設定します。
メッセージプロパティに設定できる内容を次の表に示します。
表7-3 デッドメッセージキューに登録する際の処理としてメッセージプロパティに設定できる内容
プロパティ | データ型 | 説明 |
---|---|---|
CJMS_PRESERVE_UNDELIVERED※ | Boolean | メッセージが配信できなかった場合の処理を設定します。
|
CJMS_LOG_DEAD_MESSAGES※ | Boolean | メッセージが送信先から削除されてデッドメッセージキューに登録されたことをログに出力するかどうかを設定します。
|
CJMS_TRUNCATE_MSG_BODY※ | Boolean | デッドメッセージキューに登録するメッセージのメッセージボディを削除するかどうかを設定します。
|
注※ CJMSプロバイダではサポートしていません。
また,デッドメッセージキューに登録されたデッドメッセージには,CJMSPブローカーによってプロパティが設定されます。設定されたプロパティの情報によって,メッセージがデッドメッセージキューに登録された要因と,要因となった処理を確認できます。
CJMSPブローカーによってデッドメッセージに設定されるプロパティについて,次の表に示します。
表7-4 CJMSPブローカーによってデッドメッセージに設定されるプロパティ
プロパティ | データ型 | 説明 |
---|---|---|
JMSXDeliveryCount | Integer | 特定のコンシューマーに対して配信されたメッセージの最大数が設定されます。 この値は,CJMS_DMQ_UNDELIVERED_REASONプロパティにERRORまたはUNDELIVERABLEと設定されたプロパティの場合にだけ設定されます。 |
CJMS_DMQ_UNDELIVERED_TIMESTAMP | Long | デッドメッセージキューに登録された時刻がミリ秒で設定されます。 |
CJMS_DMQ_UNDELIVERED_REASON | String | デッドメッセージキューに登録された要因を示す値が設定されます。設定されるのは次の値です。
|
CJMS_DMQ_PRODUCING_BROKER | String | このメッセージを作成したCJMSPブローカーの名前およびポート番号が設定されます。「null」が設定された場合は,ローカルで動作するCJMSPブローカーであることを示します。 |
CJMS_DMQ_DEAD_BROKER | String | デッドメッセージキューを管理しているCJMSPブローカーの名前およびポート番号が設定されます。「null」が設定された場合は,ローカルで動作するCJMSPブローカーであることを示します。 |
CJMS_DMQ_UNDELIVERED_EXCEPTION | String | 例外の発生が原因で配信されなかったメッセージの場合に,アプリケーションまたはCJMSPブローカーで発生した例外名が設定されます。 |
CJMS_DMQ_UNDELIVERED_COMMENT | String | メッセージが送信されなかった付加的な要因がある場合に設定されます。 |
CJMS_DMQ_BODY_TRUNCATED | Boolean | デッドメッセージキューへの登録時にメッセージボディが削除されたかどうかが設定されます。 「true」の場合,メッセージボディは削除されています。 「false」の場合,メッセージボディは削除されていません。 |
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.