我在Spring Batch中使用嵌入式DBCP1.3 DataSource。批处理打包在EAR中并部署在WAS7服务器中(但它不是AppClient)。使用Unix脚本安排作业。
数据源配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver"/>
<property name="url" value="****"/>
<property name="username" value="***"/>
<property name="password" value="****"/>
<property name="initialSize" value="5"/>
<property name="maxActive" value="10"/>
<property name="maxIdle" value="10"/>
<property name="maxWait" value="10000"/>
<property name="minEvictableIdleTimeMillis" value="30000"/>
<property name="timeBetweenEvictionRunsMillis" value="5000"/>
<property name="validationQuery" value="select 1 from sysibm.sysdummy1"/>
<property name="testOnBorrow" value="true"/>
<property name="testOnReturn" value="true"/>
<property name="testWhileIdle" value="true"/>
</bean>
作业完成后,我通过调用 context.close()
在finally块中显式关闭 ClassPathXmlApplicationContext spring上下文现在我的问题是,一旦作业完成,DataSource会自动关闭并释放为数据库创建的所有连接?
[编辑]: 运行应用程序调试模式后,我可以看到它关闭了DataSource
2016-05-31 11:00:56 DEBUG DisposableBeanAdapter:302 - Invoking destroy method 'close' on bean with name 'dataSource'