4.9. Last Value Queues の設定
last value queueとは、last value プロパティー名が同じメッセージでよりあたらいいものがキューに配置されると、キューからメッセージが破棄されるキューのタイプです。この動作により、last value キューは、同じプロパティーのメッセージは最後の値のみを保持します。
last value キューに対する単純なユースケースは、株式の株価しか監視するためのものです。特定の株式の最新値のみが関心があります。
ブローカーは、last value プロパティーが設定されていない last value キューに送信されたメッセージを通常のメッセージとして配信します。last value プロパティーが設定された新規メッセージを着信すると、キューからこのようなメッセージは消去されません。
以下を使用して、last value キューを設定できます。
-
broker.xml
設定ファイル - JMS クライアント
- Core API
- アドレスワイルドカード
上記の各メソッドでは、Core API を除いて、last value キー (最後の値のプロパティーとも呼ばれます) のカスタム値を指定するか、この値を未設定のままにすることができるので、代わりにキーがデフォルト値に設定されます。last value キーのデフォルト値は _AMQ_LVQ_NAME
です。
Core API の場合、定数の last value キー Message.HDR_LAST_VALUE_NAME
を使用してlast value キューを作成し、last value メッセージを識別します。
4.9.1. broker.xml を使用した last value キューの設定
last value キーのカスタム値を指定するには、broker.xml
設定ファイルに次のような行を含めます。
<address name="my.address"> <multicast> <queue name="prices1" last-value-key="stock_ticker"/> </multicast> </address>
また、デフォルトのラストバリューキー名 _AMQ_LVQ_NAME
を使用するラストバリューキューを設定することもできます。これを行うには、last value キーの値を指定せずに、broker.xml
設定ファイルで last-value 設定パラメーターを true に設定します。この設定の例を以下に示します。
<address name="my.address"> <multicast> <queue name="prices1" last-value="true"/> </multicast> </address>