201.7.3. 復元
LevelDBAggregationRepository
はデフォルトで失敗したエクスチェンジを復元します。これは、永続ストアで失敗したエクスチェンジの有無をスキャンするバックグラウンドタスクを設定することによって行われます。checkInterval
オプションを使用して、このタスクの実行頻度を設定できます。リカバリーはトランザクションとして機能し、Camel が失敗したエクスチェンジのリカバリーおよび再配信を試行します。復元されたエクスチェンジは永続ストアから復元され、再送信されて再度送信されます。
Exchange がリカバリーまたは再配信されるときに、以下のヘッダーが設定されます。
ヘッダー | Type | 説明 |
---|---|---|
| ブール値 | エクスチェンジが再配信されることを示すには、true に設定します。 |
| 整数 | 1 から開始する再配信の試行。 |
Exchange が正常に処理された場合にのみ、完了とマークされます。これは、確認
メソッドが AggregationRepository
で呼び出されると発生します。つまり、同じエクスチェンジが再び失敗すると、成功するまで再試行されます。
maximumRedeliveries
オプションを使用して、特定のリカバリーされたエクスチェンジの再配信の最大試行回数を制限できます。また、maximumRedeliveries
に達したときに Camel が Exchange を送信する場所を認識できるように deadLetterUri
オプションも設定する必要があります。
この テストなど、camel-leveldb のユニットテストにはいくつかの例があります。
201.7.3.1. Java DSL での LevelDBAggregationRepository の使用
この例では、target/data/leveldb.dat
ファイルで集約されたメッセージを永続化します。