如何更改Spring批处理(作业存储库)oracle数据源架构
我正在使用以下oracle DB属性:如何更改Spring批处理(作业存储库)oracle数据源架构,spring,spring-batch,spring-batch-admin,Spring,Spring Batch,Spring Batch Admin,我正在使用以下oracle DB属性: ds.username=ABC ds.password=***** ds.driverClassName=oracle.jdbc.OracleDriver`*` ds.url=jdbc:oracle:thin:@xyz.com:1521:db1 但是我们的DBA在不同的模式名(SQZ2210)上创建了JobRepository表,这就是为什么我得到的表或视图不存在错误。我的分析是SpringBatch JobReposity的模式默认也是提供的用户名(u
ds.username=ABC
ds.password=*****
ds.driverClassName=oracle.jdbc.OracleDriver`*`
ds.url=jdbc:oracle:thin:@xyz.com:1521:db1
但是我们的DBA在不同的模式名(SQZ2210)上创建了JobRepository表,这就是为什么我得到的表或视图不存在错误。我的分析是SpringBatch JobReposity的模式默认也是提供的用户名(username=ABS)。如果我的理解是正确的,我需要告诉SpringBatch使用不同的模式名称。示例:从SQZ2210中选择*批处理作业执行
对于Oracle,“用户”和“模式”本质上是相同的(参见此)。因此,在建立连接时,您需要使用SQZ2210的凭据
如果您的业务表位于不同的用户/不同的数据源下,这可能会给您带来一些额外的复杂性;现在,您必须关心跨多个数据源(引入了JTA、XA等)的步骤的事务完整性
有些人认为Spring批处理表应该包含在业务表中,因为作业元数据是如此密切相关;i、 e.作业本身就是业务数据,特别是当您考虑到作业参数和执行上下文中可能存储的内容时。我能够通过添加模式表前缀来解决这个问题。“batch.ds.prefix=XYZ.batch\ux”。只需确保添加“.BATCH\ux”,因为SpringBatch会截断此默认表前缀名称“BATCH\ux”,除非修改JobRepository元数据模式 谢谢