51.16.4. Optimistic locking
					optimisticLocking をオンにして、複数の Camel アプリケーションが集約リポジトリー用の同じデータベースを共有するクラスター化された環境で、この JDBC ベースの集約リポジトリーを使用できます。競合状態がある場合、JDBC ドライバーは、JdbcAggregationRepository が対応できるベンダー固有の例外を出力します。JDBC ドライバーからの例外の原因が楽観的ロックエラーと見なされるかを知るには、これを行うマッパーが必要です。したがって、org.apache.camel.processor.aggregate.jdbc.JdbcOptimisticLockingExceptionMapper があり、必要に応じてカスタムロジックを実装できます。次のように動作するデフォルトの実装 org.apache.camel.processor.aggregate.jdbc.DefaultJdbcOptimisticLockingExceptionMapper があります。
				
次のチェックが行われます。
- 
							原因となった例外が SQLExceptionの場合、SQLState が 23 で始まるかどうかがチェックされます。
- 
							原因となった例外が DataIntegrityViolationExceptionの場合
- 発生した例外クラス名に ConstraintViolation が含まれる場合。
- クラス名が設定されている場合、FQN クラス名の一致をオプションでチェックします。
さらに、FQN クラス名を追加できます。発生した例外 (またはネストされた例外) のいずれかが FQN クラス名のいずれかと等しい場合は、楽観的ロックエラーになります。
以下は、JDBC ベンダーからの 2 つの追加の FQN クラス名を定義する例です。