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;
誰かがこれをデバッグする方法を提案してもらえますか?