是否有人在实际生产负载下使用Oracle UCP有经验?
它能否很好地处理数据库重新连接?
有多线程问题吗?
有没有人将它与C3P0或Apache DBCP进行比较?

最佳答案

我评估了UCP 11.2.0.1 作为我们的旧连接池的替代品,但我不推荐它:

  • 不完全支持jdk 6 /ojdbc6.jar。例如,使用语句缓存和jmx-support不适用于Java 6并引发异常。
  • 没有内部语句缓存-它依赖于jdbc驱动程序的语句缓存(setPoolable())
  • 我将这两个问题都提交给了oracle,他们确认了这一问题,并可能在oracle 12.0发布时修复它。但这还不能肯定。
  • 发行版太少(3年内发行2个),社区支持也太少。
  • 不是开源的
  • 几乎不可扩展。 只有少数回调具有令人讨厌的界面设计。
    示例:您想在连接超过其TTL时收到通知吗?准备包装数据源和大量使用内部/专有UCP API。官方文档(最新更新:2008年)仍然保持沉默。
  • 胖设计(几乎为0.5 MB的jar)-许多具有类似名称/功能的类(例如,有一个PoolDataSourceConnectionPool-两者相关但调用方式不同,并且提供的功能稍有不同。)
  • java.util.logging仅

  • 更新1(2014年4月):
    尽管有些偏离主题:经过评估,我决定使用新的tomcat jdbc-pool-一年以来,它在多个生产系统中几乎都能正常运行。它经过精心设计,定期更新,可扩展,并且Apache Tomcat团队执行了good job in responding to questions/fixing issues

    更新2(2016年7月):
    现在,我可以高度推荐HikariCP,它比其他所有连接池都更受青睐。它的体系结构,对正确性和性能的关注真是太神奇了。

    09-05 15:40