121.6. HawtDB
Camel 2.3 の時点で利用可能
HawtDB は非常に軽量で埋め込み可能なキー値データベースです。これにより、Camel とともに Aggregator などのさまざまな Camel 機能に永続的なサポートを提供できます。
非推奨
HawtDB プロジェクトは非推奨となり、軽量で埋め込み可能なキー値データベースとして leveldb に置き換えられます。leveldb を簡単に使用するには、leveldbjni プロジェクトがあります。Apache ActiveMQ プロジェクトは、今後は kahadb に代わる主要なファイルベースのメッセージストアとして leveldb を使用する計画です。
これの代わりに使用する camel-leveldb コンポーネントがあります。
HawtDB 1.4 以前の問題
HawtDB 1.4 以前にはバグがあり、filestore では未使用の領域が解放されません。これは、ファイルが拡大中であることを意味します。これは、Camel 2.5 以降に同梱される HawtDB 1.5 で修正されました。
提供されている現在の機能:
- HawtDBAggregationRepository
121.6.1. Using HawtDBAggregationRepository
HawtDBAggregationRepository
は AggregationRepository
で、集約されたメッセージを即座に永続化します。これにより、デフォルトのアグリゲーターは AggregationRepository
のみのメモリーで使用されるため、メッセージを緩めることはありません。
このオプションには以下のオプションが含まれます。
オプション | 型 | 説明 |
---|---|---|
| 文字列 |
必須のリポジトリー名。複数のリポジトリーに共有 |
| 文字列 | 永続ストレージのファイル名。起動時にファイルが存在しない場合には、新しいファイルが作成されます。 |
| int | ファイルストアにマッピングされるメモリーセグメントバッファーのサイズ。デフォルトでは 8mb です。値はバイト単位です。 |
| boolean |
|
| short | メモリーページのサイズ。デフォルトでは 512 バイトです。値はバイト単位です。 |
| HawtDBFile |
既存の設定された |
| boolean |
get 操作によって古い既存の Exchange が返されるかどうか。デフォルトでは、このオプションは最適化時に古いエクスチェンジを必要としないため、最適化するために |
| boolean |
リカバリーが有効になっているかどうか。このオプションはデフォルトで |
| Long | リカバリーが有効になっている場合、バックグラウンドタスクは、失敗したエクスチェンジをスキャンして再送信するために、失敗したエクスチェンジをスキャンするたびに実行されます。デフォルトでは、この間隔は 5000 ミリ秒です。 |
| int |
リカバリーされたエクスチェンジの再配信試行の最大数を制限できます。有効にすると、再配信の試行に失敗した場合、エクスチェンジはデッドレターチャネルに移動します。デフォルトでは、このオプションは無効になっています。このオプションを使用する場合は、 |
| 文字列 |
リカバリーされたエクスチェンジが移動される Dead Letter Channel のエンドポイント URI。このオプションを使用する場合は、max |
|
| Camel 2.12: 楽観的ロックを有効にするには、複数の Camel アプリケーションが同じ HawtDB ベースの集約リポジトリーを共有するクラスター環境で必要になることがよくあります。 |
repositoryName
オプションを指定する必要があります。次に persistentFileName
または hawtDBFile
のいずれかを指定する必要があります。