Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Spring批处理(作业存储库)oracle数据源架构_Spring_Spring Batch_Spring Batch Admin - Fatal编程技术网

如何更改Spring批处理(作业存储库)oracle数据源架构

如何更改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

我正在使用以下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的模式默认也是提供的用户名(username=ABS)。如果我的理解是正确的,我需要告诉SpringBatch使用不同的模式名称。示例:
从SQZ2210中选择*批处理作业执行

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

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


有些人认为Spring批处理表应该包含在业务表中,因为作业元数据是如此密切相关;i、 e.作业本身就是业务数据,特别是当您考虑到作业参数和执行上下文中可能存储的内容时。

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

谢谢