300.2. コンポーネントのオプションと設定

シンプル JMS バッチコンポーネントは、以下に示す 5個のオプションをサポートしています。

名前説明デフォルトタイプ

connectionFactory (advanced)

SjmsBatchComponent を有効にするには、ConnectionFactory が必要です。

 

ConnectionFactory

asyncStartListener (advanced)

ルートの開始時に consumer メッセージリスナーを非同期で開始するかどうか。たとえば、JmsConsumer がリモート JMS ブローカーへの接続を取得できない場合は、再試行中やフェイルオーバー中にブロックされる可能性があります。これにより、ルートの開始時に Camel がブロックされます。このオプションを true に設定すると、ルートの起動を許可します。一方、JmsConsumer は非同期モードで専用のスレッドを使用して JMS ブローカーに接続します。このオプションを使用する場合は、接続を確立できない場合は例外が WARN レベルでログに記録され、コンシューマーはメッセージを受信できず、ルートを再起動して再試行できます。

false

boolean

recoveryInterval (advanced)

リカバリーの試行の間隔を指定します。つまり、接続が更新されるタイミング(ミリ秒単位)を指定します。デフォルトは 5000 ミリ秒、つまり 5 秒です。

5000

int

headerFilterStrategy (filter)

カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。

 

HeaderFilterStrategy

resolveProperty Placeholders (advanced)

起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。

true

boolean

Simple JMS Batch エンドポイントは、URI 構文を使用して設定されます。

sjms-batch:destinationName

パスおよびクエリーパラメーターを使用します。

300.2.1. パスパラメーター (1 個のパラメーター):

名前説明デフォルトタイプ

destinationName

必須 宛先名。キューのみがサポートされており、名前の前に queue: を付けることができます。

 

String

300.2.2. クエリーパラメーター(23 個のパラメーター):

名前説明デフォルトタイプ

aggregationStrategy (consumer)

必須 バッチ化されたすべてのメッセージを 1 つのメッセージにマージする、使用する集約ストラテジー。

 

AggregationStrategy

allowNullBody (consumer)

ボディーのないメッセージの送信を許可するかどうか。このオプションが false でメッセージボディーが null の場合は、JMSException が出力されます。

true

boolean

bridgeErrorHandler (consumer)

コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。

false

boolean

completionInterval (consumer)

ミリ単位の完了間隔。これにより、間隔ごとにスケジュールされた固定レートでバッチが完了します。タイムアウトがトリガーされ、バッチにメッセージがなかった場合、バッチは空になることがあります。完了タイムアウトと完了間隔の両方を同時に使用することはできません。設定できるのは 1 つだけです。

1000

int

completionPredicate (consumer)

完了述語。述語が true と評価された場合にバッチを完了させます。述語は、文字列構文を使用した単純な言語を使用して設定することもできます。オプション eagerCheckCompletion を true に設定して、述語が受信メッセージとマッチさせることもできます。それ以外の場合は、集約されたメッセージとマッチさせます。

 

String

completionSize (consumer)

バッチが完了するまでに消費されるメッセージの数。

200

int

completionTimeout (consumer)

バッチが完了するときの最初の最初のメッセージの受信からのタイムアウト (ミリ秒)。タイムアウトがトリガーされ、バッチにメッセージがなかった場合、バッチは空になることがあります。完了タイムアウトと完了間隔の両方を同時に使用することはできません。設定できるのは 1 つだけです。

500

int

consumerCount (consumer)

消費する JMS セッションの数。

1

int

eagerCheckCompletion (consumer)

完了の先行チェックを使用します。これは、completionPredicate が受信 Exchange を使用することを意味します。完了の先行チェックなしとは対照的に、completionPredicate は集約された Exchange を使用します。

false

boolean

includeAllJMSXProperties (consumer)

JMS から Camel Message へのマッピング時に JMSXxxx プロパティーをすべて含めるかどうか。これを true に設定すると、JMSXAppID や JMSXUserID などのプロパティーが含まれます。注記: カスタムの headerFilterStrategy を使用している場合、このオプションは適用されません。

false

boolean

mapJmsMessage (consumer)

Camel が受信した JMS メッセージを適切なペイロードタイプ (javax.jms.TextMessage を文字列など) に自動マップするかどうかを指定します。詳細については、以下のマッピングの仕組みに関するセクションを参照してください。

true

boolean

pollDuration (consumer)

メッセージの各ポーリングの期間 (ミリ秒)。それが短く、バッチが開始されている場合は、completionTimeout が使用されます。

1000

int

sendEmptyMessageWhenIdle (consumer)

完了タイムアウトまたは間隔を使用する場合、タイムアウトがトリガーされ、バッチにメッセージがなかった場合、バッチが空になることがあります。このオプションが true で、バッチが空の場合、空のメッセージがバッチに追加されるため、空のメッセージがルーティングされます。

false

boolean

exceptionHandler (consumer)

コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。

 

ExceptionHandler

exchangePattern (consumer)

コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。

 

ExchangePattern

asyncStartListener (advanced)

ルートの開始時に consumer メッセージリスナーを非同期で開始するかどうか。たとえば、JmsConsumer がリモート JMS ブローカーへの接続を取得できない場合は、再試行中やフェイルオーバー中にブロックされる可能性があります。これにより、ルートの開始時に Camel がブロックされます。このオプションを true に設定すると、ルートの起動を許可します。一方、JmsConsumer は非同期モードで専用のスレッドを使用して JMS ブローカーに接続します。このオプションを使用する場合は、接続を確立できない場合は例外が WARN レベルでログに記録され、コンシューマーはメッセージを受信できず、ルートを再起動して再試行できます。

false

boolean

headerFilterStrategy (advanced)

カスタムの HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルタリングします。

 

HeaderFilterStrategy

jmsKeyFormatStrategy (advanced)

JMS 仕様に準拠できるように、JMS キーをエンコードおよびデコードするためのプラグ可能な戦略。Camel は、追加設定なしで、default と passthrough の 2 つの実装を提供します。デフォルトのストラテジーでは、ドットとハイフン(. および -)を安全にマーシャリングします。パススルー戦略では、キーはそのまま残ります。JMS ヘッダーキーに不正な文字が含まれているかどうかは問題にならない JMS ブローカーに使用できます。org.apache.camel.component.jms.JmsKeyFormatStrategy の独自の実装を提供し、表記を使用して参照できます。

 

JmsKeyFormatStrategy

keepAliveDelay (advanced)

有効なセッションを再確立する試行間の遅延 (ミリ秒)。これが正の値の場合、メッセージの消費中に IllegalStateException が発生すると、SjmsBatchConsumer は新しいセッションの作成を試みます。この遅延値を使用すると、ログのスパムを防ぐために試行間で一時停止できます。これが負の値 (デフォルトは -1) の場合、SjmsBatchConsumer は以前と同じように動作します。つまり、IllegalStateException が検出された場合は、ベイルアウトし、ルートがシャットダウンします。

-1

int

messageCreatedStrategy (advanced)

Camel が JMS メッセージを送信しているときに、Camel が javax.jms.Message オブジェクトの新しいインスタンスを作成するときに呼び出される、指定された MessageCreatedStrategy を使用します。

 

MessageCreatedStrategy

recoveryInterval (advanced)

リカバリーの試行の間隔を指定します。つまり、接続が更新されるタイミング(ミリ秒単位)を指定します。デフォルトは 5000 ミリ秒、つまり 5 秒です。

5000

int

synchronous (advanced)

同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。

false

boolean

timeoutCheckerExecutor Service (advanced)

completionInterval オプションを使用すると、完了間隔をトリガーするバックグラウンドスレッドが作成されます。個々のコンシューマーへ新しいスレッドを作成するのではなく、カスタムスレッドプールを提供する場合は、このオプションを設定します。

 

ScheduledExecutor Service

completionSize エンドポイント属性は、completionTimeout と組み合わせて使用されます。最初の条件が満たされると、集約された Exchange がルートに放出されます。