Jpa2 / hibernate c3p0池配置引导连接和线程泄漏

时间:2011-09-29 09:37:36

标签: jpa-2.0 c3p0 entitymanager

我正在尝试在我的应用程序中使用c3p0作为连接池提供程序(jpa 2和hibernate core 3.3.2)但是c3p0从数据库获得了太多连接。This是同样的问题,但回答没有帮助。我是从entitymanager工厂获取entitymanager并将entitymanager存储在一个线程局部变量中,因此我为每个请求使用一个新的entiymanager。(顺便说一句,如果我使用hibernate默认池没问题)

  <property name="hibernate.connection.provider_class"
          value="org.hibernate.connection.C3P0ConnectionProvider" />


         <property name="hibernate.c3p0.min_size" value="1" />
         <property name="hibernate.c3p0.max_size" value="10" />
         <property name="hibernate. c3p0.initialPoolSize" value="3" />


         <property name="hibernate.c3p0.numHelperThreads" value="3" />
          <property name="hibernate.c3p0.maxPoolSize" value="10" />
          <property name="hibernate.c3p0.minPoolSize" value="1" />
          <property name="hibernate.c3p0.maxIdleTime" value="3600" />
          <property name="hibernate.c3p0.maxIdleTimeExcessConnections" value="300" />
           <property name="hibernate.c3p0.unreturnedConnectionTimeout" value="3600" />

        <property name="hibernate.c3p0.acquire_increment" value="1" />
        <property name="hibernate.c3p0.idle_test_period" value="3000" />
        <property name="hibernate.c3p0.max_statements" value="0" />
        <property name="hibernate.c3p0.timeout" value="300" />
        <property name="hibernate.c3p0.breakAfterAcquireFailure"  value="false" />
         <property name="hibernate.c3p0.acquireRetryAttempts"     value="1"  />
         <property name="hibernate.c3p0.acquireRetryDelay"  value="100" / >

1 个答案:

答案 0 :(得分:0)

您能否确保不在数据源和sessionFactory级别定义池。