2012-03-08 24 views
0

他のコンポーネント(AComponent)のエラー処理を行うコンポーネント(EHComponent)を記述しました。Apache Camelメッセージスコープ

AComponentはキューから読み取り、エラーが発生し、例外がスローされると、エラーセットに関するいくつかのヘッダーが取得され、.to( "error.queue")が呼び出されてメッセージが別のEHComponentが読み込むキュー。

EHComponent(すなわち、メッセージがエラー・キューにそれを作った回数を数えて)、メッセージヘッダがエラーのタイプを参照検査に応じて作用する、いくつかの追加のメッセージヘッダーを設定

EHComponentは、その値を設定し、次いでAComponentの読み込み先である.to( "Original.Queue")を呼び出します。

問題は修正されていないため、新しい例外がスローされるため、この同じメッセージが再度プロセスを通過します。

私が抱えている問題は、2回目は、同じメッセージだとは思いますが、私が設定したヘッダーはそこにないということです。

私は、メッセージのヘッダーがCamelではやや安定していると感じていました。そのため、新しい交換を行っていても、メッセージのヘッダーは元のままになります。ルートのどの部分でも、どのコンポーネントからでもメッセージヘッダーにアクセスできるようにするにはどうすればよいですか?

おかげ

答えて

0

ヘッダは、メッセージの一部であり、そのようなその最大あなたのトランスポートへとヘッダを維持するために。 したがって、コンポーネントを使用してキュー上にメッセージを送信するときは、ヘッダーを保持していることを確認してください。

ただし、Exchangeにプロパティを保存すると、Exchangeの有効期間中プロパティが保持されます。

+0

また、メッセージの処理中にCamel Message APIでgetIn vs getOutを使用する方法については、このFAQを参照してください。http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html –