180.4. オプション

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

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

entityManagerFactory (Common)

EntityManagerFactory を使用する場合。これを設定することを強くお勧めします。

 

EntityManagerFactory

transactionManager (Common)

PlatformTransactionManager を使用してトランザクションを管理する場合。

 

PlatformTransaction Manager

joinTransaction (Common)

camel-jpa コンポーネントはデフォルトでトランザクションに参加します。このオプションを使用して、これをオフにすることができます。たとえば、LOCAL_RESOURCE を使用していて、参加トランザクションが JPA プロバイダーで機能しない場合などです。このオプションは、すべてのエンドポイントで設定する代わりに、JpaComponent でグローバルに設定することもできます。

true

boolean

sharedEntityManager (common)

コンシューマー/プロデューサーに Spring の SharedEntityManager を使用するかどうか。これは EXTENDED EntityManager ではないため、ほとんどの場合、joinTransaction は false に設定する必要があります。

false

boolean

resolveProperty Placeholders (advanced)

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

true

boolean

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

jpa:entityType

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

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

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

entityType

必須 エンティティーとして使用する JPA アノテーション付きクラス。

 

Class<?>

180.4.2. クエリーパラメーター (42 個のパラメーター):

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

joinTransaction (Common)

camel-jpa コンポーネントはデフォルトでトランザクションに参加します。このオプションを使用して、これをオフにすることができます。たとえば、LOCAL_RESOURCE を使用していて、参加トランザクションが JPA プロバイダーで機能しない場合などです。このオプションは、すべてのエンドポイントで設定する代わりに、JpaComponent でグローバルに設定することもできます。

true

boolean

maximumResults (common)

クエリーで取得する結果の最大数を設定します。

-1

int

namedQuery (common)

名前付きクエリーを使用する場合。

 

String

nativeQuery (common)

カスタムネイティブクエリーを使用する場合。ネイティブクエリーを使用する場合にも、オプション resultClass を使用することができます。

 

String

parameters (common)

このキーと値のマッピングは、クエリーパラメーターの作成に使用されます。これは、キーが特定の JPA クエリーの名前付きパラメーターであり、値が選択する対応する有効な値であるジェネリック型 java.util.Map であることが期待されます。プロデューサーに使用する場合は、単純式をパラメーター値として使用できます。メッセージボディー、ヘッダーなどからパラメーター値を取得できます。

 

Map

persistenceUnit (common)

必須 デフォルトで使用される JPA 持続性ユニット。

camel

String

query (common)

カスタムクエリーを使用する場合。

 

String

resultClass (common)

返されるペイロードのタイプを定義します (entityManager.createNativeQuery (nativeQuery) の代わりに entityManager.createNativeQuery (nativeQuery、resultClass) を呼び出します)。このオプションを指定しないと、オブジェクト配列が返されます。データを消費するときにネイティブクエリーと組み合わせて使用する場合にのみ影響します。

 

Class<?>

sharedEntityManager (common)

コンシューマー/プロデューサーに Spring の SharedEntityManager を使用するかどうか。これは EXTENDED EntityManager ではないため、ほとんどの場合、joinTransaction は false に設定する必要があります。

false

boolean

bridgeErrorHandler (consumer)

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

false

boolean

consumeDelete (consumer)

true の場合、エンティティーは消費後に削除されます。false の場合、エンティティーは削除されません。

true

boolean

consumeLockEntity (consumer)

ポーリングの結果を処理する際に、各エンティティー Bean に排他ロックを設定するかどうかを指定します。

true

boolean

deleteHandler (consumer)

コンシューマーがエクスチェンジの処理を完了した後に、カスタム DeleteHandler を使用して行を削除する場合。

 

Object>

lockModeType (consumer)

コンシューマーでロックモードを設定する場合。

PESSIMISTIC_WRITE

LockModeType

maxMessagesPerPoll (consumer)

ポーリングごとに収集するメッセージの最大数を定義する整数値。デフォルトでは最大値は設定されていません。サーバーの起動時に何千ものメッセージをポーリングするのを避けるために使用できます。無効にするには、0 または負の値を設定します。

 

int

preDeleteHandler (consumer)

カスタム Pre-DeleteHandler を使用して、コンシューマーがエンティティーを読み取った後に行を削除する場合。

 

Object>

sendEmptyMessageWhenIdle (consumer)

ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。

false

boolean

skipLockedEntity (consumer)

ロック時に NOWAIT を使用し、サイレントにエンティティーをスキップするかどうかを設定する場合。

false

boolean

transacted (consumer)

バッチ全体が処理されたときに、すべてのメッセージがコミットまたはロールバックされるトランザクションモードでコンシューマーを実行するかどうか。デフォルトの動作 (false) は、以前に正常に処理されたすべてのメッセージをコミットし、最後に失敗したメッセージのみをロールバックします。

false

boolean

exceptionHandler (consumer)

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

 

ExceptionHandler

exchangePattern (consumer)

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

 

ExchangePattern

pollStrategy (consumer)

プラグ可能な org.apache.camel.PollingConsumerPollingStrategy を使用すると、エクスチェンジが作成され、Camel でルーティングされる前に、通常はポーリング操作中に発生するエラー処理を制御するカスタム実装が提供できます。

 

PollingConsumerPoll Strategy

flushOnSend (producer)

エンティティー Bean が永続化された後、EntityManager をフラッシュします。

true

boolean

remove (producer)

entityManager.remove (entity) を使用することを示します。

false

boolean

useExecuteUpdate (producer)

プロデューサーがクエリーを実行するときに executeUpdate() を使用するかどうかを設定します。INSERT、UPDATE、または DELETE ステートメントを名前付きクエリーとして使用する場合、このオプションを true に指定する必要があります。

 

Boolean

usePassedInEntityManager (producer)

true に設定すると、Camel は、コンポーネント/エンドポイントで設定されたエンティティーマネージャーの代わりに、ヘッダー JpaConstants.ENTITYMANAGER の EntityManager を使用します。これにより、エンドユーザーはどのエンティティーマネージャーを使用するかを制御できます。

false

boolean

usePersist (producer)

entityManager.merge (entity) の代わりに entityManager.persist (entity) を使用することを示します。注記: entityManager.persist (entity) は、切り離されたエンティティー (EntityManager が INSERT クエリーの代わりに UPDATE を実行する必要がある場合) では機能しません!

false

boolean

entityManagerProperties (advanced)

エンティティーマネージャーが使用する追加のプロパティー。

 

Map

synchronous (advanced)

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

false

boolean

backoffErrorThreshold (scheduler)

backoffMultipler が開始する前に発生する必要がある後続のエラーポーリング (エラーによって失敗した) の数。

 

int

backoffIdleThreshold (scheduler)

backoffMultipler が開始する前に発生する必要がある後続のアイドルポーリングの数。

 

int

backoffMultiplier (scheduler)

後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションが使用されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。

 

int

delay (scheduler)

次のポーリングまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。

500

long

greedy (scheduler)

greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。

false

boolean

initialDelay (scheduler)

最初のポーリングが開始されるまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。

1000

long

runLoggingLevel (scheduler)

コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。

 

ScheduledExecutor Service

scheduler (scheduler)

camel-spring または camel-quartz2 コンポーネントから cron スケジューラーを使用します。

none

ScheduledPollConsumer Scheduler

schedulerProperties (scheduler)

カスタムスケジューラーまたは Quartz2 や Spring ベースのスケジューラーを使用する場合に、追加のプロパティーを設定します。

 

Map

startScheduler (scheduler)

スケジューラーを自動起動するかどうか。

true

boolean

timeUnit (scheduler)

initialDelay および delay オプションの時間単位。

MILLISECONDS

TimeUnit

useFixedDelay (scheduler)

固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。

true

boolean