[SPRING] MySql과의 연결이 자동으로 중단됩니다. Connector / J를 올바르게 구성하는 방법?
SPRINGMySql과의 연결이 자동으로 중단됩니다. Connector / J를 올바르게 구성하는 방법?
오류 메시지에서이 조언을 읽었습니다.
저는 Spring과 JPA를 사용하고 있습니다. 어디에서 Connector / J를 구성해야합니까? (persistence.xml 또는 entityManagerFactory 스프링 구성에서 또는 dateSource 스프링 구성에서 또는 다른 곳에서)?
해결법
-
==============================
1.이 텍스트는 연결 중단을 방지하기위한 세 가지 솔루션을 설명합니다.
이 텍스트는 연결 중단을 방지하기위한 세 가지 솔루션을 설명합니다.
추가 댓글:
-
==============================
2.자동 연결은 권장되지 않습니다. 여기 MySQL에서
자동 연결은 권장되지 않습니다. 여기 MySQL에서
-
==============================
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.이것은 검색 엔진을 통해이 오래된 글을 찾는 나 같은 사람들을위한 것입니다.
이것은 검색 엔진을 통해이 오래된 글을 찾는 나 같은 사람들을위한 것입니다.
다른 대답은 더 나은 장기 솔루션입니다. 그러나 mysql 연결을 즉시 다시 실행해야한다면 Tomcat을 종료 한 다음 다시 시작하면 모든 것이 잠시 동안 제대로 작동합니다. 따라서 장기적인 솔루션을 찾는 동안 시스템 가동 중지 시간을 피할 수 있습니다.
터미널에서 $ CATALINA_HOME로 이동 한 다음 shutdown.sh를 입력하고 startup.sh를 입력하십시오. 시작 시퀀스가 완료 될 때까지 잠시 기다리면 앱이 잠시 동안 다시 작동합니다.
from https://stackoverflow.com/questions/2077081/connection-with-mysql-is-being-aborted-automatically-how-to-configure-connector by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring에서 @Valid와 @Validated의 차이점 (0) | 2019.01.25 |
---|---|
[SPRING] Spring Security 2.06에서 커스텀 AuthenticationProvider 구현하기 (0) | 2019.01.25 |
[SPRING] Spring 어노테이션 @Controller는 @Service와 같은가요? (0) | 2019.01.25 |
[SPRING] Sort와 Pageable로 Spring 데이터 JPA를 사용하여 데이터를 쿼리하는 방법은 무엇입니까? (0) | 2019.01.25 |
[SPRING] javax.servlet.ServletException을 스프링 웹 앱의 유형으로 해결할 수 없습니다. (0) | 2019.01.25 |