"com.mysql.jdbc.Exceptions.jdbc4.MySQLNonTransientConnectionException: 연결이 닫힌 후에는 작업이 허용되지 않습니다."
문제:
원격 서버에 애플리케이션을 배포할 때 애플리케이션을 하루 이상 실행한 후 MySQL 연결 예외가 발생합니다. 연결이 닫힌 후에는 어떤 작업도 허용되지 않는다는 예외 메시지가 나타납니다.
원인:
예외는 비활성으로 인해 연결이 끊어졌을 가능성이 높습니다. MySQL 서버 및 클라이언트의 기본 시간 초과 설정이 너무 짧아 연결이 조기에 종료될 수 있습니다.
해결책:
1. 서버 및 클라이언트 시간 초과 조정
서버(MySQL 구성):
클라이언트(Hibernate/JDBC 연결 풀):
2. 연결 풀링 활성화
추가 조치:
업데이트된 Hibernate 구성:
제공된 업데이트된 Hibernate 구성 파일은 C3P0 연결 풀링을 사용하고 권장 설정을 포함합니다:
<hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/xyz</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <!-- Enable C3P0 connection pooling --> <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="c3p0.max_size">20</property> <property name="c3p0.min_size">5</property> <property name="c3p0.max_statements">0</property> <property name="c3p0.timeout">600</property> <property name="c3p0.idleConnectionTestPeriod">3600</property> <property name="c3p0.testConnectionOnCheckout">true</property> </session-factory> </hibernate-configuration>
위 내용은 \'com.mysql.jdbc.Exceptions.jdbc4.MySQLNonTransientConnectionException: 연결이 닫힌 후 작업이 허용되지 않음\' 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!