10.4. Claim Check EIP
Claim Check EIP
図10.4「Claim Check パターン」 に記載されている Claim Check EIP パターンでは 、メッセージコンテンツをクレームチェック (一意の鍵) に置き換えることができます。Claim Check EIP パターンを使用して、後でメッセージコンテンツを取得します。メッセージコンテンツは、一時的にデータベースやファイルシステムなどの永続ストアに格納できます。このパターンは、メッセージコンテンツが非常に大きく (送信するに高価)、すべてのコンポーネントにすべての情報が必要でない場合に役立ちます。
また、外部の情報で信頼できない場合にも便利です。この場合、Claim Check を使用してデータの機密部分を非表示にします。
EIP パターンの Camel 実装は、メッセージコンテンツを内部メモリーストアに一時的に格納します。
図10.4 Claim Check パターン
10.4.1. Claim Check EIP オプション
Claim Check EIP は、以下の表に記載されているオプションをサポートしています。
名前 | 説明 | デフォルト | 型 |
operation | Claim Check 操作を使用する必要があります。以下の操作をサポートします。
*
*
*
*
*
| ClaimCheckOperation | |
key | Claim Check ID に特定のキーを使用します。 | String | |
filter | Claim Check リポジトリーからマージするデータを制御するフィルターを指定します。 | String | |
strategyRef |
デフォルトの実装の代わりにカスタム | String |
フィルターオプション
Filter
オプションを使用して、Get
または Pop
の操作を使用する場合にマージして戻すデータを定義します。AggregationStrategy
を使用してデータをマージして戻します。デフォルトのストラテジーでは、filter オプションを使用して、マージするデータを簡単に指定します。
filter
オプションは、以下の構文を持つ String 値を取ります。
-
body
: メッセージボディーを集約します。 -
attachments
: すべてのメッセージ添付を集約します。 -
headers
: すべてのメッセージヘッダーを集約します。 -
header:pattern
: パターンに一致するすべてのメッセージヘッダーを集約します。
パターンルールはワイルドカードおよび正規表現をサポートします。
-
ワイルドカードの一致 (パターンが
*
で終わり、名前がパターンで始まります) - 正規表現の一致
複数のルールを指定するには、commas
(,) で区切ります。
以下は、メッセージボディーおよび foo で始まるすべてのヘッダーを含む基本的なフィルターの例です。
body, header:foo*
-
メッセージのボディーのみをマージする場合:
body
-
メッセージの添付のみをマージする場合:
attachments
-
ヘッダーのみをマージする場合:
headers
-
ヘッダー名
foo
のみをマージする場合:header:foo
フィルタールールを空またはワイルドカードとして指定すると、すべてをマージできます。詳細は、Filter what data to merge back を参照してください。
データをマージすると、システムは既存のデータを上書きします。また、既存のデータを格納します。