4.11.4. 最後の値キューに対して非破壊的な消費を強制する
コンシューマーがキューに接続すると、通常の動作として、そのコンシューマーに送信されたメッセージがコンシューマーによってのみ取得されます。コンシューマーがメッセージの受信を確認すると、ブローカーはキューからメッセージを削除します。
通常の消費動作の代わりに、非破壊的な消費を強制するようにキューを設定できます。この場合、キューがメッセージをコンシューマーに送信すると、他のコンシューマーによってメッセージを受信できます。さらに、コンシューマーが消費した場合でも、メッセージはキューに残ります。このような非破壊的な消費行動を強制する場合、コンシューマーはキューブラウザーと呼ばれます。
非破壊的な消費を実施すると、キューが特定の最後の値キーに関する最新値を保持するようにするため、最後の値キューでは便利な設定になります。
以下の手順は、最後の値キューに対して非破壊的な消費を強制する方法を示しています。
前提条件
すでに個別に、あるいは、アドレスや一連のアドレスに関連するすべてのキューに対して、最後の値のキューを設定しました。詳細は以下を参照してください。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 キューを最後の値キューとして個別に設定している場合は、
non-destructive
キーを追加します。この値はtrue
に設定します。以下に例を示します。<address name="my.address"> <multicast> <queue name="orders1" last-value-key="stock_ticker" non-destructive="true" /> </multicast> </address>
以前、最後の値キューにアドレスまたは一連のアドレス を設定している場合は、
default-non-destructive
キーを追加します。この値はtrue
に設定します。以下に例を示します。<address-setting match="lastValue"> <default-last-value-key>stock_ticker </default-last-value-key> <default-non-destructive>true</default-non-destructive> </address-setting>
注記デフォルトでは、
default-non-destructive
の値はfalse
です。