第20章 メッセージの期限切れ

メッセージは、メッセージの送信時にオプションの存続期間 (TimeToLive) で設定できます。
HornetQ は、存続期間が過ぎた後にメッセージをコンシューマーに配信しません。存続期間に到達する前にメッセージが配信されない場合は、サーバーがメッセージを破棄できます。
HornetQ アドレスには、期限切れアドレスを割り当てることができます。したがって、メッセージの期限が切れた場合に、アドレスがキューから削除され、期限切れアドレスに送信されます。期限切れアドレスには多くのさまざまなキューをバインドできます。これらの期限切れメッセージは、後で消費して詳しく調査できます。

20.1. メッセージの期限切れ

HornetQ コア API を使用する場合は、メッセージに直接期限を設定できます。
// message will expire in 5000ms from now
message.setExpiration(System.currentTimeMillis() + 5000);
JMS MessageProducer を使用すると、送信されるメッセージに対して TimeToLive を設定できます。
// messages sent by this producer will be retained for 5s (5000ms) before expiration           
producer.setTimeToLive(5000);
期限切れアドレスから消費される期限切れメッセージは、以下のプロパティーを持っています。
HQ_ORIG_ADDRESS
期限切れメッセージの元のアドレスを含む文字列プロパティー
HQ_ACTUAL_EXPIRY
期限切れメッセージの実際の期限を含む Long のプロパティー