本文内容为完全转载,
转载原因,转载是为了更好的查看。
关键功能
druid
bonecp
dbcp
c3p0
proxool
jboss
lru
是
否
pscache
pscache-oracle-optimized
exceptionsorter
监控
扩展
lru是一个性能关键指标,特别oracle,每个connection对应数据库端的一个进程,如果数据库连接池遵从lru,有助于数据库服务器优化,这是重要的指标。在测试中,druid、dbcp、proxool、jboss是遵守lru的。bonecp、c3p0则不是。bonecp在mock环境下性能可能好,但在真实环境中则就不好了。
pscache是数据库连接池的关键指标。在oracle中,类似select name from user where id = ?这样的sql,启用pscache和不启用pscache的性能可能是相差一个数量级的。proxool是不支持pscache的数据库连接池,如果你使用oracle、sql server、db2、sybase这样支持游标的数据库,那你就完全不用考虑proxool。
oracle 10系列的driver,如果开启pscache,会占用大量的内存,必须做特别的处理,启用内部的enterimplicitcache等方法优化才能够减少内存的占用。这个功能只有druiddatasource有。如果你使用的是oracle jdbc,你应该毫不犹豫采用druiddatasource。
exceptionsorter是一个很重要的容错特性,如果一个连接产生了一个不可恢复的错误,必须立刻从连接池中去掉,否则会连续产生大量错误。这个特性,目前只有jbossdatasource和druid实现。druid的实现参考自jbossdatasource。
druiddatasource自身提供有notemptywaitcount、pscahchehitcount等有用的监控属性,通过配置statfilter能够监控sql的执行情况。
druiddatasource提供基于filter-chain模式的模式的扩展