복붙노트

[SPRING] C3P0 봄 최대 절전 모드 : 풀이 초과되었습니다. 디버깅하는 방법?

SPRING

C3P0 봄 최대 절전 모드 : 풀이 초과되었습니다. 디버깅하는 방법?

Tomcat에 Spring Hibernate 애플리케이션이있다. 연결 풀이 C3P0입니다.

나는 스레드 풀이 C3P0에서 경고를 최대한 빨리 마주 치게됩니다. 그런 다음 웹 응용 프로그램에 대한 모든 요청이 중단됩니다.

나는 여전히 @Transaction 주석을 놓친 코드 어딘가에 있다고 가정하고있다. 내 코드를 디버그하고 싶다.

질문 : 코드를 통해 연결 풀에 액세스 할 수 있으므로 연결이 해제되고 릴리스되지 않을 때 디버깅 할 수 있습니까?

업데이트 : 현재 c3p0 설정 :

해결법

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

    1.예

    코드가 없어도 내장되어 있습니다. 연결 유출을 디버깅하도록 c3p0을 구성하면 유출 된 연결을 로그에 체크 아웃 한 코드 경로의 스택 추적을 인쇄합니다.

    최신 정보:

    <property name="unreturnedConnectionTimeout" value="30" />
    <property name="debugUnreturnedConnectionStackTraces" value="true" />
    

    unreturnedConnectionTimeout에 사용해야하는 값은 응용 프로그램에 따라 다릅니다. Connection의 예상되는 합법적 인 사용 시간보다 길어야하지만 더 짧지는 않습니다. 누출에 대한 로그 메시지를 더 빠르게받을 수 있고 앱이 원활하게 작동 할 수 있습니다. 대부분의 웹 응용 프로그램의 경우 위에 표시된 30 초는 보수적이며 클라이언트는 응답을 위해 약 30 초 정도 기다릴 것으로 예상되지 않으므로 시간 초과는 Connection 누설을 안전하게 나타냅니다.

  2. from https://stackoverflow.com/questions/41773676/c3p0-spring-hibernate-pool-maxed-out-how-to-debug by cc-by-sa and MIT license