【发布时间】:2013-04-15 17:46:02
【问题描述】:
我完全熟悉连接池库,如 c3p0 等...我对由 Web 容器(如 Tomcat 和 WebSphere)管理的连接池非常熟悉。
但是,如果您有一个独立的批处理模式 Java 应用程序(带有 main 方法的东西)并且您希望它能够利用连接池的优势,那又如何呢?我的意思是,如果独立程序要管理池,它将运行,创建池,使用连接然后退出,破坏池。如果您希望应用程序运行并使用现有的连接池,这并不能真正为您带来任何好处。
我要问的是,在数据库和可以管理连接池的 Java 命令行应用程序之间是否有可以运行的软件层?该软件将为您的 Java 应用程序提供一个端口,以通过 JDBC 访问连接池。因此,任何具有指向该端口的 JDBC URL 的应用程序都可以使用连接池。现在,即使没有中间件服务器(tomcat、glassfish),独立应用程序也可以使用连接池。
听起来很酷。它存在吗?它是否存在于 Oracle 中:)
【问题讨论】:
-
一个独立的批处理应用程序可能只需要一两个连接。为什么不完全避免使用池,或者使用连接数最少的本地池?
-
一个独立的应用程序可能需要一个连接池,原因与在容器中运行的应用程序需要一个连接池的原因相同:当单个连接超时或因其他原因变坏时不会崩溃。应用程序不是直接使用连接,而是在需要时使用 DataSource 来获取良好的连接。然后,DataSource 提供了孤立的 Connection 无法提供的可靠性。
标签: java connection pool