私はバネの統合+バッチアプリケーションを持っています。スプリング統合とバッチトランザクションの(スプリングバッチジョブの)すべてのメソッドのデフォルト分離レベルがSERIALIZABLEに設定されているのはなぜですか?
統合は、inbounチャネルアダプタを使用してファイルを読み取り、バッチジョブを呼び出すために使用されます。 はjobRepositoryから定義されています org.springframework.batch.core.repository.support.JobRepositoryFactoryBean
トランザクションマネージャorg.springframework.orm.jpa.JpaTransactionManagerです。
アプリケーションは、しかし、私はコンフィギュレーションのこの奇妙な種類を読んで、なぜ私にはわからない始まり
は:[5860] [2012-03-12 17:40:47,267] D [main] [org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource] Adding transactional method [*] with attribute [PROPAGATION_REQUIRED,ISOLATION_DEFAULT]
[5860] [2012-03-12 17:40:47,267] D [main] [org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource] Adding transactional method [create*] with attribute [PROPAGATION_REQUIRES_NEW,ISOLATION_SERIALIZABLE]
[5860] [2012-03-12 17:40:47,267] D [main] [org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource] Adding transactional method [getLastJobExecution*] with attribute [PROPAGATION_REQUIRES_NEW,ISOLATION_SERIALIZABLE]
デフォルトごとjobmethodがSERIALIZABLE分離して構成されているようですが、私はそれを設定しませんでしたどこにもない。 デフォルトの分離レベルをISOLATION_DEFAULTとして設定する方法はありますか?
注釈@EnableBatchProcessingを使用しているとき、私はこれを行うにはどうすればよいですか? –
この場合、独自のBatchConfigurerを用意する必要があります。 DefaultBatchConfigurerを拡張し、createJobRepository()をオーバーライドすることができます。 –
@ gary-russellジョブインスタンスが2つ以上のボックスで同時に実行されないようにするにはどうすればよいですか?トランザクションSERIALIZABLEはオプションではありません。私は次のクラスを探していて、次のアプリケーションを探していました:org.springframework.batch.core.repository.dao.JdbcJobInstanceDao.jobIncrementer – svlada