第19章 メッセージ再配信と未配信メッセージ

メッセージ配信は、メッセージを使用するために使用されるセッションがロールバックされた場合などに失敗することがあります。未配信メッセージは配信可能なキューに戻されます。ただし、これは、複数の配信が失敗したときに、メッセージがキューに残ったままになり、システムに負荷を与えることを意味します。system.
これらの未配信メッセージには次の 2 つのオプションがあります。
遅延再配信
メッセージ配信は、クライアント時間が一時的な失敗から回復し、ネットワークまたは CPU リソースをオーバーロードしないように遅延させることができます。
死亡したレターアドレス
配信できないと判断された後にメッセージを送信する死亡したレターアドレスを設定します。
これらのオプションは、柔軟性を最大化するために組み合わせることができます。

19.1. 遅延再配信

再配信の遅延は、定期的に失敗したり、ロールバックされたりするクライアントに役に立つことがあります。再配信の遅延がないと、システムは「非常に負荷が高い」状態になり、配信に失敗したり、クライアントがロールバックされたりして永久的な再配信が試行され、CPU およびネットワークリソースが消費されることがあります。

19.1.1. 遅延再配信の設定

遅延再配信は、address-setting 設定で定義されます。
<!-- delay redelivery of messages for 5s -->
<address-setting match="jms.queue.exampleQueue">
   <redelivery-delay>5000</redelivery-delay>
</address-setting>
redelivery-delay が指定された場合、HornetQ は該当するミリ秒の間待機し、メッセージを再配信します。再配信遅延はデフォルトで有効になり、60000 (1 分) に設定されます。
アドレスワイルドカードは、アドレスセットに対して再配信遅延を設定するために使用できます (11章HornetQ ワイルドカード構文について を参照)。この場合は、再配信遅延を各アドレスに対して個別に指定する必要はありません。