我是春季批次和批次管理员的新手。我陷入了要使用多个数据源的情况。即用于批处理元数据和业务模式(应用程序表)的一种。
我在我的batch-mysql.properties文件中使用以下代码。
对于批处理matadata表
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 = classpath *:business-schema-mysql.sql
然后我得到一个异常,找不到上述属性。
如果保持原样,则它将在批处理matadata模式中创建应用程序表。
最佳答案
只是不向属性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