无法在spring批处理管理中连接多个mysql架构

时间:2016-12-08 04:00:39

标签: mysql spring spring-batch-admin

我是春季批处理和批处理管理员的新手。我陷入了一个我想要使用多个数据源的场景。即一个用于批处理元数据和业务模式(应用程序表)。

我在batch-mysql.properties文件中使用下面的代码。

对于批处理元数据表

batch.jdbc.driver=com.mysql.jdbc.Driver
batch.jdbc.url=jdbc:mysql://localhost:3306/batch
batch.jdbc.user=root
batch.jdbc.password=root
batch.jdbc.testWhileIdle=true
batch.jdbc.validationQuery=SELECT 1
batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-mysql.sql
batch.schema.script=classpath:/org/springframework/batch/core/schema-mysql.sql
batch.business.schema.script=classpath*:business-schema-mysql.sql

对于应用程序架构

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/applicationschema
db.user=root
db.password=root

如果我删除下面的代码行     batch.business.schema.script =类路径*:业务架构mysql.sql

然后我得到一个异常,上面的属性找不到。 如果保持原样那么它就是在批量数据架构模式中创建应用程序表。

1 个答案:

答案 0 :(得分:0)

只是不向属性batch.business.schema.script提供任何值。试着离开它,如下所示:

batch.business.schema.script =

此外,如果您不想在每次启动应用程序时删除并创建批处理元表,则应在批处理属性文件中设置batch.data.source.init=false

编辑:这就是我的batch-oracle.properties文件的样子:

 batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer
 batch.isolationlevel=READ_COMMITTED
 batch.business.schema.script=
 batch.data.source.init=false
 batch.job.service.reaper.interval=6000
 batch.schema.script=classpath:/org/springframework/batch/core/schema-drop-oracle10g.sql
 batch.jdbc.url=jdbc:oracle:thin:@localhost:1521:mydb
 batch.table.prefix=BATCH_
 batch.lob.handler.class=org.springframework.jdbc.support.lob.DefaultLobHandler
 batch.verify.cursor.position=true
 batch.jdbc.validationQuery=SELECT 1 FROM dual
 batch.jdbc.password=mypassword
 batch.jdbc.testWhileIdle=false
 batch.jdbc.user=user
 batch.jdbc.pool.size=5
 batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-oracle10g.sql