-
Notifications
You must be signed in to change notification settings - Fork 8.6k
OnFatalErrorMaxActive
温绍 edited this page Nov 20, 2017
·
1 revision
DruidDataSource使用一种叫做ExceptionSorter的机制来处理不可恢复异常发生时把连接从连接池中去掉,避免这种“脏”连接影响整个连接池的使用。
在Druid 1.1.6版本开始,提供了OnFatalErrorMaxActive配置选项,用于控制当OnFatalError发生时最大使用连接数量,用于控制异常发生时并发执行SQL的数量,减轻数据库恢复的压力。
- 提供参数onFatalErrorMaxActive,缺省值为0。
- 当ExceptionSorter检测到fatalError发生,进入onFatalError状态。
- 当有Statement.Execute(包括execute/executeQuery/executeUpdate/executeBatch)执行成功后,退出onFatalError状态。
- 在onFatalError状态,并且参数设置onFatalErrorMaxActive > 0时,会检查activeCount是否大于onFatalErrorMaxActive,如果大于则抛异常。
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="onFatalErrorMaxActive" value="1" />
</bean>