How good is Oracle Universal Connection Pool (UCP)

Andrey Ashikhmin picture Andrey Ashikhmin · Mar 11, 2010 · Viewed 29.9k times · Source

Does anybody have experience with using Oracle UCP under real production load? Does it handle database reconnects well? Are there any multi-threading issues? Has anybody compared it with C3P0 or Apache DBCP?

Answer

MRalwasser picture MRalwasser · Dec 14, 2010

I evaluated UCP 11.2.0.1 as a replacement for our legacy connection pool and I cannot recommend it:

  • it does not fully support jdk 6 / ojdbc6.jar. For example the use of statement caching and jmx-support does not work with java 6 and throws exceptions.
  • no internal statement cache - it relies on the jdbc driver's statement cache (setPoolable())
  • I submitted both issues to oracle, they confirmed it and will probably fix it when oracle 12.0 will be released. But even that's not for sure.
  • Too few releases (2 releases in 3 years), too less community support.
  • Not Open-Source
  • Hardly extensible. Only a few callbacks with an horrible interface design.
    Example: You want to be notified when a Connection exceeds its TTL? Prepare for a wrapper DataSource and a mass usage of internal/proprietary UCP APIs. The official documentation (last update: 2008) remains silent how to achive this.
  • Fat design (almost a 0,5 MB jar) - many classes with similar names/function (e.g. there's a PoolDataSource and a ConnectionPool - both are related but invoked differently and provide slightly different functionality.)
  • java.util.logging only


UPDATE 1 (April 2014):
Although slightly off-topic: As a result of my evaluation I decided to go with the new tomcat jdbc-pool - and it is working almost perfectly since a year in several production systems. It's very well designed, updated regularly, extensible and the apache tomcat team does a good job in responding to questions/fixing issues.

UPDATE 2 (July 2016):
I can now highly recommend HikariCP which I'm currently favoring over all other connection pools.
Its architecture, focus on correctness and performance is just amazing.