2012-06-11 2 views
2

방금 ​​호스팅 회사에서 전화를 받았는데, 내 응용 프로그램이 MySQL 데이터베이스에 400 개 이상의 연결을 생성하고 dbms가 어떤 방법으로 충돌을 일으킨다 고 주장했습니다! 난 내 최대 절전 모드 설정 파일 여기에, 연결 풀로c3p0이 너무 많은 연결을 만듭니다

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 

    <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url"> 
      jdbc:mysql://localhost/music?characterEncoding=UTF-8 
    </property> 
    <property name="connection.username">USER</property> 
    <property name="connection.password">PASS</property> 
    <property name="show_sql">true</property> 
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="current_session_context_class">thread</property> 
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 
    <property name="hbm2ddl.auto">update</property> 

    <property name="hibernate.max_fetch_depth">3</property> 

    <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 
    <property name="hibernate.c3p0.acquire_increment">2</property> 
    <property name="hibernate.c3p0.idle_test_period">300</property> 
    <property name="hibernate.c3p0.timeout">1800</property> 
    <property name="hibernate.c3p0.max_size">25</property> 
    <property name="hibernate.c3p0.min_size" >3</property> 
    <property name="hibernate.c3p0.max_statement">0</property> 
    <property name="hibernate.c3p0.preferredTestQuery">select 1;</property> 
    <property name="hibernate.c3p0.testConnectionOnCheckout">true</property> 
    <property name="hibernate.c3p0.validate">true</property>  

    <mapping resource="com/roodakimusic/hibernate/resources/Article.hbm.xml"/> 
    <mapping resource="com/roodakimusic/hibernate/resources/News.hbm.xml"/> 
    <mapping resource="com/roodakimusic/hibernate/resources/Admin.hbm.xml"/> 
    <mapping resource="com/roodakimusic/hibernate/resources/Maestro.hbm.xml"/> 
    <mapping resource="com/roodakimusic/hibernate/resources/Roodaki.hbm.xml"/> 
    <mapping resource="com/roodakimusic/hibernate/resources/Photo.hbm.xml"/>  


    </session-factory> 
</hibernate-configuration> 

와 MySQL과 응용 프로그램 사이의 대화이

Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
    session.beginTransaction(); 
    //session.doSomething 
    session.getTransaction().commit(); 

처럼 나에게 어떤 문제가 있는지를 최대 절전 모드 및 C3P0를한다 사용하고? : D --edit - 일부는 jdbc 커넥터 버전 일 수 있다고 말합니다.

+0

c3p0은 어떻게 구성되어 있습니까? – DerMike

+0

c3p0 구성이 최대 절전 모드 구성에 있습니다. 그렇지 않아? – MoienGK

+0

http://stackoverflow.com/questions/3768263/how-can-i-prevent-hibernate-c3p0-mysql-creating-large-numbers-of-sleeping-co?rq=1 – rkosegi

답변

0

향후 제공 예정! :

용해 됨. .. 문제가 내 HibernateUtil.java,이 라인이 문제였다 :

반환 새로운 구성()() 구성 buildSessionFactory();

+0

문제점은 무엇이며 어떻게 수정 했습니까? – AndroidDev

+0

@AndroidDev 수세기 전에 :)). 제가 언급 한 라인은 매번 새로운 세션 팩토리를 만드는 것입니다. 최대 절전 모드 구성에 문제가있었습니다. – MoienGK

관련 문제