문제:
애플리케이션을 원격으로 배포할 때 "com.mysql" 예외가 발생합니다. .jdbc.Exceptions.jdbc4.MySQLNonTransientConnectionException: No Operations allowed after Connection close"가 애플리케이션을 하루 이상 실행한 후 발생합니다.
원인:
오류가 발생했습니다. 닫힌 연결로.
잠재적 해결 방법:
연결 풀링:
Hibernate가 내장- 연결 풀링은 제한되어 있습니다. C3P0과 같은 타사 연결 풀링 솔루션을 사용해 보세요.
<code class="xml"><property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="c3p0.min_size">5</property> <property name="c3p0.max_size">20</property> <property name="c3p0.max_statements">50</property> <property name="c3p0.maxIdleTime">3600</property></code>
사용 전 연결 테스트:
"c3p0. 다음 속성을 사용하여 클래스 경로 루트에 있는 "properties" 파일을 삭제합니다.
<code class="properties">c3p0.testConnectionOnCheckout=true</code>
이렇게 하면 각 연결을 사용하기 전에 테스트하여 잘못된 연결을 식별하고 닫는 데 도움이 됩니다.
업데이트된 hibernate.cfg.xml 구성:
<code class="xml"><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> <property name="hibernate.show_sql">false</property> <property name="hibernate.current_session_context_class">thread</property> <property name="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</property> <property name="hibernate.c3p0.min_size">5</property> <property name="hibernate.c3p0.max_size">20</property> <property name="hibernate.c3p0.max_statements">50</property> <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="c3p0.max_statements">0</property> <property name="c3p0.maxIdleTimeExcessConnections">3600</property> <property name="c3p0.idleConnectionTestPeriod">3600</property> <property name="c3p0.maxIdleTime">3600</property></code>
참고: 프로덕션에 배포하기 전에 항상 개발 또는 스테이징 환경에서 구성 변경 사항을 테스트하세요. .
위 내용은 원격 애플리케이션에서 \"MySQLNonTransientConnectionException: 연결이 닫힌 후 작업이 허용되지 않음\"을 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!