有没有人有在实际生产负载下使用Oracle UCP的经验? 它是否能很好地处理数据库重新连接? 有任何多线程问题吗? 有没有人将它与C3P0或Apache DBCP进行比较?
答案 0 :(得分:32)
我评估了UCP 11.2.0.1 作为旧版连接池的替代,我不推荐:
setPoolable()
)PoolDataSource
和一个ConnectionPool
- 都是相关的但是调用方式不同,功能略有不同。)
更新1(2014年4月) :
虽然略显偏离主题:由于我的评价,我决定采用新的tomcat jdbc-pool - 并且它在几个生产系统中的一年后几乎完美地工作。它设计得很好,定期更新,可扩展,并且apache tomcat团队做了good job in responding to questions/fixing issues。
更新2(2016年7月) :
我现在强烈推荐HikariCP,我目前支持所有其他连接池。
它的架构,注重正确性和性能真是太棒了。
答案 1 :(得分:3)
我在一个系统中使用了UCP,每秒约10次交易(平均值),每秒达到360次交易,没有问题。 (每个应用服务器的数量为8台服务器)
但是,从UCP获得的主要好处是当您使用Oracle RAC和TAF/FAN functionality, UCP with Dataguard时,或者如果您在外部运行某个应用程序服务器。
答案 2 :(得分:3)
我已经描述了我在UCP中观察到的与隐式连接缓存相比的性能/可伸缩性问题:https://stackoverflow.com/a/27512252/676877
答案 3 :(得分:2)
我见过很多客户在生产中使用UCP。我没有看到你关心的问题。它在负载下表现很好。并且可以处理重新连接。重新连接策略是可配置的。它也很好地支持RAC。
但使用商业连接池的真正好处是,有人对您遇到的任何问题负责。你会惊讶于有多少人试图开发和维护自己的连接池。
答案 4 :(得分:2)
我刚刚使用基于Eclipse Link的应用程序尝试了UCP,并且遇到了ORA-0100:每次都超出了最大打开游标数。我已将参数MaxStatements设置为10,但这没有任何效果。我已经检查了堆,并且有数百个T4CPreparedStatement对象存活但少于10个包装语句。所以在我无法控制的地方有一个巨大的语句缓存。
Tomcat jdbc pool就像魅力一样。
答案 5 :(得分:-5)
通过使用连接池(IBM RAD)到oracle我获得了更快的结果。与正常的编程概念相比。在连接池属性中,默认情况下,最大连接数为10,理想的超时时间是180秒。
这里我们可以一次设置最大用户用户访问权限....