2016-11-23 2 views
0

Hibernateと一緒にc3p0プールを使用しています。しかし、休止状態はプール内の接続を再利用していません。クライアント接続のためにmysql-workbenchが表示されているとき、私はそれらのほとんどが「Sleep」の状態にあることがわかります。プールは、私が最終的に尽きるまで、時間の経過と共に成長し続けます。ここでプール内で使用されているすべての接続は眠気に満ちており、新しい接続が作成されます。

は、データ構成からの抜粋です:

persistenceMap.put(
    "connection.provider_class", "org.hibernate.connection.C3P0ConnectionProvider" 
); 
persistenceMap.put("hibernate.c3p0.min_size", "1"); 
persistenceMap.put("hibernate.c3p0.max_size", "5"); 
persistenceMap.put("hibernate.c3p0.timeout", "5"); 
persistenceMap.put("hibernate.c3p0.max_statements", "20"); 
persistenceMap.put("hibernate.c3p0.acquire_increment", "1"); 
persistenceMap.put("hibernate.c3p0.maxIdleTimeExcessConnections", "3"); 

MYSQL - ワークベンチ - >クライアント接続:

enter image description here

/アドバイスを助けてください。

答えて

0

次の解決策は私のために働いているようです。

接続プーリングJarsが更新されました。

  • c3p0-0.9.2.1
  • hibernate-c3p0-5.1.0.Final
  • mchange-コモンズ-javaの-0.2.3.4

永続性となっています以下のように変更されました。 FYI 永続プロパティ

persistenceMap.put("javax.persistence.jdbc.url","jdbc:mysql://localhost:3306/test_db"); 
persistenceMap.put("javax.persistence.jdbc.user", "root"); 
persistenceMap.put("javax.persistence.jdbc.password", "root"); 
persistenceMap.put("javax.persistence.jdbc.driver", "com.mysql.jdbc.Driver"); 
persistenceMap.put("hibernate.show_sql", "true"); 
persistenceMap.put("hibernate.format_sql", "true"); 
persistenceMap.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); 
persistenceMap.put("hibernate.hbm2ddl.auto", "validate"); 

persistenceMap.put("hibernate.connection.provider_class", "org.hibernate.connection.C3P0ConnectionProvider"); 
persistenceMap.put("hibernate.c3p0.min_size", "1"); 
persistenceMap.put("hibernate.c3p0.max_size", "20"); 
persistenceMap.put("hibernate.c3p0.timeout", "10"); 
persistenceMap.put("hibernate.c3p0.max_statements", "50"); 

... 私は OSを使用しています:Ubuntuの Javaのバージョン:8 休止バージョン:5.1.0

関連する問題