У меня есть интеграция с весной + пакетное приложение.Почему уровень изоляции по умолчанию для каждого метода (весеннего пакетного задания) для весенней интеграции и пакетной транзакции установлен на 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