복붙노트

[SPRING] MySql과의 연결이 자동으로 중단됩니다. Connector / J를 올바르게 구성하는 방법?

SPRING

MySql과의 연결이 자동으로 중단됩니다. Connector / J를 올바르게 구성하는 방법?

오류 메시지에서이 조언을 읽었습니다.

저는 Spring과 JPA를 사용하고 있습니다. 어디에서 Connector / J를 구성해야합니까? (persistence.xml 또는 entityManagerFactory 스프링 구성에서 또는 dateSource 스프링 구성에서 또는 다른 곳에서)?

해결법

  1. ==============================

    1.이 텍스트는 연결 중단을 방지하기위한 세 가지 솔루션을 설명합니다.

    이 텍스트는 연결 중단을 방지하기위한 세 가지 솔루션을 설명합니다.

    추가 댓글:

  2. ==============================

    2.자동 연결은 권장되지 않습니다. 여기 MySQL에서

    자동 연결은 권장되지 않습니다. 여기 MySQL에서

  3. ==============================

    3.나는 많은 해결책을 겪었고 문제는 해결되었지만 몇 시간이 지나면 연결 시간이 초과되거나 연결이 끊어졌습니다. 2 일 후 3 일 동안 문제를 해결할 솔루션을 얻었습니다.

    나는 많은 해결책을 겪었고 문제는 해결되었지만 몇 시간이 지나면 연결 시간이 초과되거나 연결이 끊어졌습니다. 2 일 후 3 일 동안 문제를 해결할 솔루션을 얻었습니다.

    많은 해결책은 autoReconnect = true를 사용할 것을 제안하지만 내가 문서를 검토 할 때. autoReconnect 매개 변수를 설명하는 소스에서 다음 텍스트를 보았습니다.

    세션 상태 및 데이터 일관성과 관련된 부작용이 있으므로이 기능을 사용하지 않는 것이 좋습니다.

    최대 절전 모드 코드를 살펴 보았습니다. Hibernate의 기본 연결 메커니즘은 재 연결을 지원하지 않으므로 H3C0 연결 풀을 사용해야합니다 (자체적으로 재 연결을 지원하지는 않음).

    하지만 일단 H3C0을 사용하면 기본 동작은 연결이 끊어지면 사용자가보고 오류가 발생하지만 요청을 처리하는 것으로 보이지만 적어도 다음 요청에 대해서는 다시 연결됩니다. 나는 하나의 오류가 무한 오류보다 낫지 만 여전히 0 오류만큼 좋지 않다고 가정합니다. optiontestConnectionOnCheckout이 필요합니다. 요청 전에 연결을 테스트하면 성능이 저하 될 수 있으므로 문서에서는 권장하지 않습니다. 물론 소프트웨어가 먼저 작동해야하며, 둘째로 빠른 속도로 작동해야합니다.

    요약하자면, "작업"(오류없이 다시 연결하여 끊어진 연결을 처리하는 것을 포함하는 것으로 정의하는)에 대한 연결을 얻으려면 : "hibernate.cfg.xml"에서 :

      <!-- hibernate.cfg.xml -->
        <property name="c3p0.min_size">5</property>
        <property name="c3p0.max_size">20</property>
        <property name="c3p0.timeout">1800</property>
        <property name="c3p0.max_statements">50</property>
        <!-- no "connection.pool_size" entry! -->
    

    그런 다음 클래스 경로의 루트에 있어야하는 "c3p0.properties"파일을 만듭니다 (즉, 응용 프로그램의 특정 부분에 대해 재정의 할 방법이 없음).

    c3p0.testConnectionOnCheckout = true

    이 솔루션이 더 많은 솔루션보다 작동하지 않는 경우 : -

    1. Add
    
    <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
    
     Also dont forget to place the c3p0-0.9.1.jar in the classpath. 
    
    
    
        2. Instead of using that c3p0.properties file, couldn't you just use this property in your hibernate.cfg.xml:
    
    <property name="hibernate.c3p0.validate">true</property>
    
        Also checkout the last post on this page:
    
        https://forum.hibernate.org/viewtopic.php?p=2399313
    
        If all these not work than go [more][1] and read in detail
    
    
      [1]: http://hibernatedb.blogspot.in/2009/05/automatic-reconnect-from-hibernate-to.html
    
  4. ==============================

    4.이것은 검색 엔진을 통해이 오래된 글을 찾는 나 같은 사람들을위한 것입니다.

    이것은 검색 엔진을 통해이 오래된 글을 찾는 나 같은 사람들을위한 것입니다.

    다른 대답은 더 나은 장기 솔루션입니다. 그러나 mysql 연결을 즉시 다시 실행해야한다면 Tomcat을 종료 한 다음 다시 시작하면 모든 것이 잠시 동안 제대로 작동합니다. 따라서 장기적인 솔루션을 찾는 동안 시스템 가동 중지 시간을 피할 수 있습니다.

    터미널에서 $ CATALINA_HOME로 이동 한 다음 shutdown.sh를 입력하고 startup.sh를 입력하십시오. 시작 시퀀스가 ​​완료 될 때까지 잠시 기다리면 앱이 잠시 동안 다시 작동합니다.

  5. from https://stackoverflow.com/questions/2077081/connection-with-mysql-is-being-aborted-automatically-how-to-configure-connector by cc-by-sa and MIT license