Spring Batch-创建新的批处理作业时出现Oracle错误(jobLauncher)

时间:2019-07-16 15:25:22

标签: java spring oracle11g spring-batch spring-batch-tasklet

我遇到间歇性问题启动批处理作业时,引发以下异常:

2019-07-15 11:56:07.435错误--- [main] c.s.a.IntegratorLauncher:org.springframework.dao.CannotSerializeTransactionException:PreparedStatementCallback; SQL [插入到BATCH_JOB_INSTANCE(JOB_INSTANCE_ID,JOB_NAME,JOB_KEY,VERSION)值(?,?,?,?)中] ORA-08177:无法序列化对此事务的访问 ;嵌套的异常是java.sql.SQLException:ORA-08177:无法序列化对此事务的访问

此作业已部署在AWS -Cloud上。我在内部数据中心中运行的是同一类型的工作,该工作绝对正常……所以我不确定云是否有问题-

我尝试了以下解决方法,但没有成功-

    @Bean
    @Transactional(isolation = Isolation.READ_COMMITTED)
    JobRepository jobRepository() {
      JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean()
      factory.setDataSource(dataSource())
      factory.setTransactionManager(transactionManager())
      factory.setIsolationLevelForCreate('ISOLATION_READ_COMMITTED')
      factory.afterPropertiesSet()
      return (JobRepository) factory.getObject()
    }

    @Bean
    PlatformTransactionManager transactionManager() {
      return new DataSourceTransactionManager(dataSource())
    }

感谢任何帮助!

0 个答案:

没有答案