DBCP连接池配置示例

时间:2022-12-26 21:05:02
<bean id="dataSourceOracle2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>${jdbc.oralce.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.oralce.url}</value>
</property>
<property name="username">
<value>${jdbc.oralce.authusername}</value>
</property>
<property name="password">
<value>${jdbc.oralce.authpassword}</value>
</property>
<!--连接池初始化时打开的连接数-->
<property name="initialSize" value="5"/>
<!-- 最大空闲连接数 -->
<property name="maxIdle" value="10"/>
<!-- 最大活动连接数-->
<property name="maxActive" value="50"/>
<!-- 程序从连接池中获取连接时的最大等待时间(单位为毫秒) 超过指定时间还不能从连接池中得到连接,则抛出异常-->
<property name="maxWait" value="60000"/>
<!--是否自动回收超时连接 所谓超时连接就是应用从连接池中获取连接后超过一定时间没有还给连接池-->
<property name="removeAbandoned" value="true"/>
<!-- 自动回收超时时间(以秒数为单位)-->
<property name="removeAbandonedTimeout" value="10"/>
<!--将会在回收事件后,在log中打印出回收Connection的错误信息,包括在哪个地方用了Connection却忘记关闭了-->
<property name="logAbandoned" value="true"/>
<property name="validationQuery" value="select * from dual"/>
</bean>

建议把
<property name="maxWait" value="60000"/>

改成

<property name="maxWait" value="1000"/>

<!--连接池初始化时打开的连接数--> 和<!-- 最大空闲连接数 --> 可以根据应用的实际并发数量做相应的调整,如果每秒只有只有10个以下的并发的建议改成

<property name="initialSize" value="1"/>

<property name="maxIdle" value="5"/>