Skip to content

ExceptionSorter_cn

weixliu edited this page Nov 14, 2017 · 5 revisions

当网络断开或者数据库服务器Crash时,连接池里面会存在“不可用连接”,连接池需要一种机制剔除这些“不可用连接”。在Druid和JBoss连接池中,剔除“不可用连接”的机制称为ExceptionSorter,实现的原理是根据异常类型/Code/Reason/Message来识别“不可用连接”。没有类似ExceptionSorter的连接池,在数据库重启或者网络中断之后,不能恢复工作,所以ExceptionSorter是连接池是否稳定的重要标志。

如何使用

在Druid中,会根据连接池连接数据库的类型自动匹配不同类型的ExceptionSorter,不需要额外配置。这一点Druid和jboss是不同的。

Druid内置哪些ExceptionSorter

dbType ExceptionSorter Implementation description
DB2 com.alibaba.druid.pool.vendor.DB2ExceptionSorter
Informix com.alibaba.druid.pool.vendor.InformixExceptionSorter
SQL Server com.alibaba.druid.pool.vendor.MSSQLValidConnectionChecker
MySQL com.alibaba.druid.pool.vendor.MySqlExceptionSorter 支持OceanBase和阿里云RDS特定的ErrorCode
Oracle com.alibaba.druid.pool.vendor.OracleExceptionSorter
Postgresql com.alibaba.druid.pool.vendor.PGExceptionSorter
Sybase com.alibaba.druid.pool.vendor.SybaseExceptionSorter
Clone this wiki locally