2011-01-18 9 views
5

JMS Queueとそれを待機するMDBを使用しています。 私は再試行のメカニズムを持っているので、例外がスローされると、トランザクションへのロールバックが発生し、操作は再実行されます/Retrieve JMSメッセージの再試行回数

"onMessage"が実行されるたびにMessage_retry_numberを達成したいと思います。現在の実行リトライ番号を書き込むことができます。 メッセージオブジェクトのヘッダーから取得できると聞きましたが、プロパティやネットで何も見つかりませんでした。

誰か手掛かりがありますか?

おかげで、 線。

答えて

10

javax.jms.Message.getIntPropertyを参照してください。プロパティー名は "JMSXDeliveryCount"です。これを行うには

+0

うわー、yer goood :)ありがとう。 – rayman

1

唯一の標準的な方法は、JMSXDeliveryCountプロパティを見たことがされています。ただし、JMS仕様ではJMSXで始まるプロパティはオプションであることがJMS仕様で規定されているため、このプロパティがサポートされているかどうかはそれぞれのプロバイダによって異なります。

0

オラクルのチュートリアル[https://docs.oracle.com/javaee/7/tutorial/jms-concepts003.htm#BNCEH]セクション45.3.7.2メッセージのプロパティから:

JMS APIは、JMSXで始まるいくつかの事前定義されたプロパティ名を提供します。 JMSプロバイダは、これらのうちの1つ(メッセージが配信された回数を指定するJMSXDeliveryCount)のみを実装する必要があります。残りはオプションです。これらの事前定義済みプロパティーまたはユーザー定義プロパティーのアプリケーションでの使用はオプションです。

JMSXDeliveryCount実装が必要であり、それはあなたが必要とする情報が含まれます。

関連する問題