对于使用 Oracle OLTP 数据库作为数据源的现代后端 Java 应用程序,我应该使用哪一个?
对我来说,HikariCP 看起来像是现代 Java 应用程序的事实上的标准池。但现在我需要维护一些过去的项目,该项目目前停留在 Oracle 驱动程序 v11 并使用 UCP。我现在想知道:Oracle 的UCP比HikariCP有什么优势吗?你会使用 UCP 还是 HikariCP?
在start.spring.io生成的新 Spring Boot 项目将默认使用 HikariCP(尽管从 2.4 开始支持 UPC),直到您在 application.properties 中明确强制执行 UCP:
spring.datasource.type=oracle.ucp.jdbc.PoolDataSource
1. We prefer HikariCP for its performance and concurrency. If HikariCP is available, we always choose it.
...
4. If none of HikariCP, Tomcat, and DBCP2 are available and if Oracle UCP is available, we use it.
Oracle 网站包含有关如何在 Spring Boot 中使用 UCP 的教程(1、2),但没有解释这种设置的任何优点。我发现一个旧的 StackOverflow 答案提到了一些“非阻塞架构”,但我仍然不确定它是否使 UCP 比 HikariCP 更有价值或更可靠。