首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c3p0的最佳配置

c3p0的最佳配置
EN

Stack Overflow用户
提问于 2012-09-20 14:20:06
回答 2查看 66K关注 0票数 39

我正在努力解决c3p0配置面临的问题。I posted a question last week

EN

回答 2

Stack Overflow用户

发布于 2012-09-21 21:21:37

这是我正在使用的一种配置,它将资源保持在最低限度。当然,您需要定制您的应用程序以使用它需要的资源……

参考:http://www.mchange.com/projects/c3p0/index.html

当连接返回到池中时,

  • testConnectionOnCheckin会对其进行验证。虽然在使用之前,testConnectionOnCheckOut可以确保活动连接,但对于do.
  • idleConnectionTestPeriod来说代价太高了。在测试连接之前,testConnectionOnCheckOut对连接保持空闲的时间设置了限制。在没有preferredTestQuery的情况下,默认值是DatabaseMetaData.getTables() -它与数据库无关,虽然调用成本相对较高,但对于相对较小的数据库来说可能已经足够了。如果您对性能有疑虑,请使用特定于您的数据库的查询(例如,在活动达到峰值后,preferredTestQuery="SELECT 1")
  • maxIdleTimeExcessConnections将使connectionCount返回到minPoolSize

下面的配置将poolsize设置在3-20之间。空闲连接每5分钟重新测试一次,以保持其活动状态。由于有了idleConnectionTestPeriod,这只会使最小数量的连接保持活动状态。如果在4分钟内有3个以上的连接,它会杀死这些连接,释放最少的资源。

使用maxIdleTimeExcessConnectionsidleConnectionTestPeriod消除了对maxIdleTime的需求

代码语言:javascript
复制
<Context docBase="myapp" path="/myapp" reloadable="true">
    <Resource description="My DB Datasource" name="jdbc/mydb"
        auth="Container" factory="org.apache.naming.factory.BeanFactory"
        type="com.mchange.v2.c3p0.ComboPooledDataSource" 
        user="myuser" password="******"
        minPoolSize="3"
        maxPoolSize="20"
        acquireIncrement="1" 
        driverClass="com.mysql.jdbc.Driver" 
        jdbcUrl="jdbc:mysql://localhost:3306/mydb"
        testConnectionOnCheckin="true" 
        idleConnectionTestPeriod="300"
        maxIdleTimeExcessConnections="240"
    />
</Context>
票数 50
EN

Stack Overflow用户

发布于 2012-09-20 15:04:20

最佳配置是将JPA设置为使用容器环境来获取DataSource。

这允许容器提供连接池,而不是直接将其配置到JPA项目中。

您没有指明您使用的是哪个容器环境。我几乎总是将c3p0用于独立的应用程序,比如Java桌面或服务器应用程序。我也在Spring框架中使用它。

在使用Servlet (Tomcat/Jetty)或Application Server (例如Glashfish或JBoss AS)等容器时,这些容器已经提供了一个DataSource连接池实现,该实现通常不是c3p0,但提供了等效的功能。

我从未尝试在JPA项目中配置连接池,因为这意味着要编辑配置,以便为它需要运行的每个环境自定义它。这是一个令人头疼的问题,所以最好给JPA part提供在引导过程中使用的DataSource。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12507021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档