【问题标题】:Third party connection pool software?第三方连接池软件?
【发布时间】: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


【解决方案1】:

我没有测试,但看起来很有趣:

DBPool : Java Database Connection Pooling

什么是 DBPool?

一个基于 Java 的数据库连接池实用程序,支持 基于时间的到期、语句缓存、连接验证和简单 使用池管理器进行配置。

【讨论】:

    【解决方案2】:

    据我了解,您的设置池必须是一个独立进程。这意味着,批处理对数据库使用正确的 JDBC 驱动程序,但应该与池通信。这意味着,池必须使用数据库的专有协议。这不能通过一种产品通过合理的努力来完成。

    因此,您不应要求通用解决方案,而应要求针对特定数据库的解决方案。

    以 PostgreSQL 为例,有两个这样的池:PgBouncer 和 pgpool。

    【讨论】:

      猜你喜欢
      • 2014-11-30
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 2021-05-09
      • 2010-10-11
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多