0

キューに割り当てられた配信不能キューにメッセージを送信するようにブローカに明示的に指示する方法はありますか?

特定の回数の再配信の試行後にメッセージを DLQ に自動的に送信するようにキューを構成できることはわかっています。これは、データベースの問題、ネットワークの問題などの一時的なエラーには完全に理にかなっています。ただし、ビジネス ルール エラーの場合、そのメッセージが再配信されるまでに X 分にわたって X 回再配信を試行することは意味がありません。ビジネスルール違反/不正なメッセージなどであることがわかっている場合は、配信不能キューに送信されます。

ビジネス ルール違反を見つけたときに、すぐにそのキューのデッド レター キューに送信できる方法があることを期待していました。デッド レター キューに送信するコードを明示的に記述できることはわかっていますが、多数 (数十) の構成可能なキューがあり、関連するデッド レター キューはミドルウェア チームによって構成されます。デッド レター キューのキュー名を明示的にコーディングしたり、独自のプロパティで構成したりしたくありません。メッセージをすぐに配信不能キューに送信し、再配信を試行しないようにブローカーに指示する簡単な方法があることを願っています。

のようなものになるようmessage.deadLetter()です。何か単純なものが欠けているように感じますが、消費者、セッション、またはメッセージにそのようなメカニズムは見られません。

4

1 に答える 1

0

JMS仕様で説明している機能に対応するものはありません。JMSRedeliveredJMS 仕様には、ヘッダーやJMSXDeliveryCountプロパティなどによる再配信が組み込まれています。ただし、実際には「デッドレター」宛先については言及されていません。

そうは言っても、そのような機能は特定の JMS ブローカーによって提供される可能性がありますが、使用している JMS ブローカーの実装について言及していないため、選択したブローカーがそのような機能を実装しているかどうかを言うことは不可能です。いずれにせよ、実装固有のメカニズムを介して構成および/または呼び出しが行われます。このメカニズムは、定義上、ブローカー間で移植できず、JMS API からは利用できません。

于 2022-02-18T17:15:07.247 に答える