11

JPA2.0 と Hibernate3.0 を使用して Web アプリを実装しています。接続プールの構成は、META-INF フォルダーにある persistence.xml で設定されます。


persistence.xml:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL">
        <!-- Entity Classes-->
        <properties>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="bytecode.provider"   value="org.hibernate.bytecode.javassist.BytecodeProviderImpl"/>
            <property name="hibernate.connection.username" value="{username}"/>
            <property name="hibernate.connection.password" value="{password}"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.connection.url" value="{jdbc url}"/>

            <property name="hibernate.c3p0.min_size" value="1"/>
            <property name="hibernate.c3p0.timeout" value="1000"/>
            <property name="hibernate.c3p0.acquire_increment" value="1"/>
            <property name="hibernate.c3p0.idle_test_periods" value="600"/>
            <property name="hibernate.c3p0.testConnectionOnCheckin" value="true"/>
            <property name="hibernate.c3p0.preferredTestQuery" value="SELECT 1;"/>
       </properties>
    </persistence-unit>
</persistence>

接続プールの構成に問題があります。設定は効果がないようで、接続は 8 時間後に切断されます。hibernate.cfg.xml や hibernate.properties のような別の構成ファイルが必要ですか?

4

4 に答える 4

4

私はpersistence.xmlに入れたプロパティでこれと同じ問題を抱えていましたが、c3p0には影響しませんでした。

http://www.mchange.com/projects/c3p0/index.html#configuration_filesを調べて、という名前のxmlファイルを入れて入れようとしたc3p0-config.xmlところ、WEB-INF/classes完全に機能しました。

c3p0-config.xmlファイルの例を次に示します。

<c3p0-config>
  <default-config>
    <property name="automaticTestTable">con_test</property>
    <property name="checkoutTimeout">30000</property>
    <property name="idleConnectionTestPeriod">30</property>
    <property name="initialPoolSize">10</property>
    <property name="maxIdleTime">30</property>
    <property name="maxPoolSize">100</property>
    <property name="minPoolSize">10</property>
    <property name="maxStatements">200</property>

    <user-overrides user="test-user">
      <property name="maxPoolSize">10</property>
      <property name="minPoolSize">1</property>
      <property name="maxStatements">0</property>
    </user-overrides>

  </default-config>
</c3p0-config>
于 2013-02-27T11:44:31.673 に答える
3

良い質問ですが、悪いタイトルです。:) あなたの再投稿でこの質問に答えたと思います: c3p0 の最適な構成

于 2012-09-21T13:23:45.290 に答える
1

まったく同じ問題がありました。問題は、Web アプリケーション コンテナー (Tomcat) がデータベース接続を管理していたことです。c3p0 構成を自分の persistence.xml ファイルから Tomcat の context.xml に移動する必要がありました。Domenic D が提供するリンクは、それが問題である場合に開始するのに最適な場所です。

于 2014-09-09T14:40:35.597 に答える