在我的项目中,我使用多个模式(多个数据源)

当我添加 Spring 批处理配置时,我收到错误: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 5

但是当我删除 spring 批处理配置时,错误被删除。

@Configuration
@EnableBatchProcessing
@Import(MyDataSourceClassConfig.class)
public class TestBatchJobConfiguration extends DefaultBatchConfigurer {

    @Autowired
    private JobBuilderFactory jobBuilderFactory;
    @Autowired
    private StepBuilderFactory stepBuilderFactory;
   ....


}

#1楼 票数:0

如果您也面临同样的问题,则需要验证两点。

首先,您必须不要创建名为 transactionManager 的 bean 事务(这是 spring 批处理使用的默认事务)

其次,您需要覆盖 getTransactionManager 以指定要使用的事务管理器和要使用的数据源

@Autowired
@Qualifier("myPersonalTransactionManager")
private PlatformTransactionManager transactionManager;


@Override
public PlatformTransactionManager getTransactionManager() {
    return transactionManager;
}
@Override
@Autowired
public void setDataSource(@Qualifier("thirdDataSource") DataSource batchDataSource) {
    super.setDataSource(batchDataSource);
}

  ask by BERGUIGA Mohamed Amine translate from so

未解决问题?本站智能推荐:

2回复

春季批处理JPAItemReader性能问题

下面是我的Spring Batch作业的配置,该作业从DB中获取记录,在项目处理器中进行一些处理,更新Status列并写回到DB。 当我运行1万条记录时,我可以看到它逐条记录每条记录并以相同的方式更新状态。 最初,我打算使用多线程,但是它没有任何意义,因为我的工作每天运行一次,记录数量在1
1回复

无法使用SpringBatch+Spring数据在数据库中插入行

我正在使用遗留数据库,其中db表没有密钥。 对于java Sake,我必须使用Id注释。 我的目标是从.dat文件中读取数据并将其插入表中。 我正在使用弹簧批来达到上述目的。 为了提高性能,使用了线程。 但我得到插入/更新问题,我无法弄清楚。 我引用了许多来源但似乎没有一个解决我的目
1回复

jparespositrysaveAll一次可以处理的最大记录数是多少?

在我的spring-boot应用程序中,我正在运行一个调度作业,该作业正在从一个表中获取记录,然后将另一个表保存为存档,我遇到了一个问题,所以现在我选择要保存的记录大约有40万条左右,以及何时工作正在执行,它一直在继续。 ja可以处理这么多要立即保存的数据吗? 以下是我的配置和方法。 a
1回复

TransactionRequiredException:使用JPAItemWriter时没有事务正在进行中

我面临一个奇怪的问题,一个应用程序是一个弹簧启动应用程序。 细节在这里: 该应用程序有一个弹簧批处理作业,它使用JpaItemWriter执行对数据库的写入。 此外,应用程序配置为使用休眠 ItemWriter配置如下: 批量工作过去很好,但最近我们将Jenkins升级为Je
1回复

使用JPA事务处理Spring批处理错误

我有一个 spring 批处理作业在快乐路径场景中按照我想要的方式工作,但现在我专注于错误处理。 我的目标是跳过一组已知错误,并在任何其他异常(如数据库错误或外部 API 错误)上使作业失败。 我稍后会重新开始工作。 为此,我将步骤配置创建为 在集成测试中,我已经证明,如果在我的读取器/处理器/写入
1回复

Spring批处理xmlrepositoryitemwriter架构占位符表单属性

需要从 spring 批处理应用程序的属性文件中获取模式名称。 对于 MSSQL 数据库,dev 和 prod 的架构名称不同。 xml中的作业配置如下 应该从属性文件中检索模式名称“dbo”,以便可以在配置中更改 DEV 和 PROD
2回复

查询Spring批处理中的批处理作业元数据

我想从与BATCH_JOB_INSTANCE表连接的BATCH_JOB_EXECUTION表中获取10条最新记录。 那么如何访问这些表呢? 在这个应用程序中,我使用了Spring Data JPA。 这是另一个使用Spring Batch并创建这些表的应用程序。 换句话说,我只想运行
1回复

Spring批处理SpringJPA错误CannotCreateTransactionException:无法为事务IllegalStateException打开JPAEntityManager:

我是Spring的新手。 我正在尝试将数据从一个数据库(Oracle)架构迁移到另一个数据库(Oracle)架构。 我试图使用Spring Boot 2.1.3 + Spring JPA + Spring Batch实现这一目标这是我的代码 DemoApplication.java applica