Why is the default isolation level for each method (spring batch job) for integrating spring and batch transaction set to SERIALIZABLE?

I have spring integration + batch application.

Integration is used to read a file with an inboun channel adapter and invoke a batch job. JobRepository is defined from: org.springframework.batch.core.repository.support.JobRepositoryFactoryBean

Transaction Manager - org.springframework.orm.jpa.JpaTransactionManager.

When the application starts, I do not know why, but I read this strange configuration:

[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]

It seems that by default, each working method is configured with SERIALIZABLE isolation, but I have not installed it anywhere. Any idea to set the default isolation level as ISOLATION_DEFAULT?

+5
1

SERIALIZABLE . , .

http://static.springsource.org/spring-batch/reference/html/configureJob.html#txConfigForJobRepository

isolation-level-for-create

create * getLastJobExecution *

+4

All Articles