0

c3p0設定を使用して、アプリケーションが古い接続を自動的に破棄し、接続を自動的に再確立できるようにしようとしています。sessionfactoryproviderクラスで以下のように構成プロパティを設定しました。

configuration.setProperty("hibernate.c3p0.min_size", c3p0
                .get("minPoolSize") != null ? c3p0.get("minPoolSize")
                : "1");
configuration.setProperty("hibernate.c3p0.max_size", c3p0
                .get("maxPoolSize") != null ? c3p0.get("maxPoolSize")
                : "50");
configuration.setProperty("hibernate.c3p0.timeout", c3p0
                .get("maxIdleTime") != null ? c3p0.get("maxIdleTime")
                : "900");
configuration.setProperty(
                "hibernate.c3p0.acquireRetryAttempts",
                c3p0.get("acquireRetryAttempts") != null ? c3p0
                                .get("acquireRetryAttempts") : "30");
configuration.setProperty(
                "hibernate.c3p0.acquireIncrement",
                c3p0.get("acquireIncrement") != null ? c3p0
                                .get("acquireIncrement") : "5");
configuration.setProperty(
                "hibernate.c3p0.idleConnectionTestPeriod",
                c3p0.get("idleConnectionTestPeriod") != null ? c3p0
                                .get("idleConnectionTestPeriod") : "60");
configuration.setProperty("hibernate.c3p0.initialPoolSize", c3p0
                .get("minPoolSize") != null ? c3p0.get("minPoolSize")
                : "1");
configuration.setProperty(
                "hibernate.c3p0.maxStatements",
                c3p0.get("maxStatementsPerConnection") != null ? c3p0
                                .get("maxStatementsPerConnection")
                                : "0");
configuration.setProperty("preferredTestQuery", "select 1 from dual");
configuration.setProperty("hibernate.c3p0.testConnectionOnCheckin",
                "true");
configuration.setProperty("hibernate.c3p0.testConnectionOnCheckout",
                "true");
configuration.setProperty("testConnectionOnCheckin", "true");
configuration.setProperty("hibernate.c3p0.preferredTestQuery",
                "select 1 from dual");

テストクエリを実行しようとしているアプリケーションにログが見つかりません。また、データベースの再起動後に回復しません。プロパティファイルとログで「show_sql」がtrueに設定されていると、他のクエリが実行されていることがわかります。
パッケージのバージョンは次のとおりです 。C3P0=0.9.1.2; HibernateAnnotations = 3.3; 休止状態=3.3;

誰かがこれをデバッグする方法を提案してもらえますか?

4

1 に答える 1

0

log4j構成でデバッグするc3p0のログレベルを設定してみてください。

log4j.category.com.mchange=DEBUG
于 2012-08-27T19:46:27.793 に答える