配置 Spring 批处理管理以使用 db2 数据库

Configure Spring batch admin to use db2 database

为了配置 spring 批处理管理 UI 以使用 db2 数据库,我参考了 Admin UI 文档,其中写着 "launch the application with a system property -DENVIRONMENT=[type]." 我知道 "-DENVIRONMENT=db2" 应该保存在某个文件中。我尝试保留在 batch-default.properties 文件中,但这没有用。由于我使用的是 WLP(自由服务器),因此尝试保留在 server.xml 文件中,但没有帮助。仍在控制台中,我看到来自批处理管理员的 env-context.xml 文件仍在加载批处理-hsql.properties 文件(默认配置)。

不太熟悉 liberty 服务器,但下面的 link 说需要将系统属性添加到 jvm.options 文件中。请参阅下面的 link:

https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_admin_customvars.html

我的作业是使用 Spring Boot 编写的,所以我将 属性、ENVIRONMENT=db2 放入 application.properties 并在同一位置添加了一个新文件 - batch-db2.properties作为 application.properties。

那里需要很少的强制性属性,例如 - 您需要尝试一个实验,

batch.job.configuration.package=
batch.drop.script=classpath*:/org/springframework/batch/core/schema-drop-db2.sql
batch.schema.script=
batch.business.schema.script=

#Copied from batch.properties of spring-batch-admin-manager API project
batch.jdbc.testWhileIdle=false
batch.jdbc.validationQuery=
batch.data.source.init=false
batch.job.configuration.file.dir=target/config
batch.job.service.reaper.interval=60000
batch.files.upload-dir=/sba/input

我也放了 DB 连接信息,但后来我通过覆盖文件 - data-source-context.xmlMETA-INF\spring\batch\override 中移动到 JNDI,如下所示,

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName" value="ConnectionPool" />
    </bean>


    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
     <property name="dataSource" ref="dataSource" />
    </bean>


</beans>

ConnectionPool 是来自服务器的数据库连接池 JNDI 名称。

在您的代码中保留配置让您可以自由地将您的应用程序移动到不同的服务器,而无需先询问服务器特定的配置。