【问题标题】:How can I change the Spring batch(Job Repository) oracle datasource schema如何更改 Spring 批处理(作业存储库)oracle 数据源架构
【发布时间】:2015-11-17 23:09:24
【问题描述】:

我正在使用以下 oracle 数据库属性:

ds.username=ABC
ds.password=*****
ds.driverClassName=oracle.jdbc.OracleDriver`*`
ds.url=jdbc:oracle:thin:@xyz.com:1521:db1

但是我们的 DBA 在不同的模式名称 (SQZ2210) 上创建了 JobRepository 表,这就是为什么我得到表或视图不存在错误的原因。我的分析是Spring batch JobReposity的schema默认也是提供的用户名(username=ABS)。如果我的理解是正确的,我需要告诉 Spring Batch 使用不同的模式名称。前任。 :select * from SQZ2210.BATCH_JOB_EXECUTION

【问题讨论】:

    标签: spring spring-batch spring-batch-admin


    【解决方案1】:

    对于 Oracle,“用户”和“模式”本质上是相同的(参见 Ask Tom)。因此,在进行连接时,您需要使用 SQZ2210 的凭据。

    如果您的业务表位于不同的用户/不同的数据源下,这可能会给您带来一些额外的复杂性;现在您必须关注跨多个数据源(引入 JTA、XA 等)的步骤的事务完整性。

    有些人认为 Spring Batch 表应该包含在您的业务表中,因为作业元数据密切相关;即,作业本身是业务数据,尤其是当您考虑可能存储在作业参数和执行上下文中的内容时。

    【讨论】:

      【解决方案2】:

      我能够通过添加架构表前缀来解决这个问题。 “batch.ds.prefix=XYZ.BATCH_”。只需确保添加“.BATCH_”,因为 Spring Batch 会截断此默认表前缀名称“BATCH_”,除非您修改 JobRepository 元数据模式。

      谢谢。

      【讨论】:

        猜你喜欢
        • 2018-05-06
        • 1970-01-01
        • 1970-01-01
        • 2013-06-14
        • 1970-01-01
        • 1970-01-01
        • 2011-10-07
        • 1970-01-01
        • 2022-01-21
        相关资源
        最近更新 更多