【问题标题】:Specify JobRepository Isolation Level with @EnableBatchProcessing使用 @EnableBatchProcessing 指定 JobRepository 隔离级别
【发布时间】:2015-11-20 04:20:48
【问题描述】:

我正在使用 Java 注释创建一个 Spring Batch 应用程序。我有 @EnableBatchProcessing 注释,所以我没有明确定义 JobRepository 或 JobRepositoryFactory。直到今天,当我开始收到“ORA-08177: can't serialize access for this transaction”错误时,这一切都很好。

如何更改我不创建或不与之交互的 JobRepository 的隔离级别?

【问题讨论】:

    标签: java transactions annotations spring-batch


    【解决方案1】:

    “如何更改我不创建或与之交互的 JobRepository 的隔离级别?”简而言之,你没有。您需要自己创建它,方法是扩展 DefaultBatchConfigurer 并覆盖 createJobRepository 方法以提供您自己的自定义实例。

    【讨论】:

    • 感谢您的快速回复。
    • (叹气,我 讨厌 输入添加评论,而不是放入 cr/lf。)继续我 试图 说的话: 但是为了真正设置隔离级别,我必须在JobRepositoryFactoryBean 上这样做。要使用它来创建JobRepository,我必须在工厂bean 上设置dataSource,它是DefaultBatchConfigurer 私有的。所以我还必须覆盖setDataSource 并保留我自己对dataSource 的引用。我想我也应该 remove @EnableBatchProcessing 注释,因为我现在正在扩展 DefaultBatchConfigurer。对吗?
    • BatchConfigurer@EnableBatchProcessing 使用,因此您不想删除它。另外,是的,您需要覆盖 setDataSource 或在您自己的 BatchConfigurer 中自动连接一个单独的引用。
    • 问题就像它来了一样神秘地消失了,我不需要做任何事情(除了回家第二天再回来)。感谢您提供所有信息。
    猜你喜欢
    • 1970-01-01
    • 2015-08-02
    • 2015-08-19
    • 1970-01-01
    • 2013-01-25
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多