일정 기간 유휴 상태 후 MariaDB가 작동하지 않음
제 웹 앱에서는 종종 java.sql이라는 예외가 발생합니다.SQLOnTransientConnection예외:쿼리를 전송할 수 없습니다.마지막 패킷이 완료되지 않은 경우 보통 시스템이 장시간 아이돌 상태가 된 후에 발생합니다.Tomcat을 재시작하면 이 문제가 일시적으로 해결됩니다.
최근에 운영 서버(tomcat7 및 mariaDB 5.5 실행)에서 RHEL7로 이동했습니다.이 오류는 이전 서버(mySQL에서 RHEL5 실행)에서는 발생하지 않았습니다.이전 서버에서 사용하던 mysql 드라이버에서 안정적인 최신 mariadb 커넥터 mariadb-java-client-1.1.7.jar로 Java 데이터베이스 드라이버를 업데이트했습니다.
문제 해결 방법이나 해결 방법이 있습니까?
다음은 이 예외의 전체 로그입니다.
Lexicon Message: Content.getData Error trying to excute: SELECT * FROM prefixes where prefix ='l' java.sql.SQLNonTransientConnectionException: Could not send query: Last packet not finished at org.mariadb.jdbc.internal.SQLExceptionMapper.get(SQLExceptionMapper.java:136) at org.mariadb.jdbc.internal.SQLExceptionMapper.throwException(SQLExceptionMapper.java:106) at org.mariadb.jdbc.MySQLStatement.executeQueryEpilog(MySQLStatement.java:264) at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:288) at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:338) at snaq.db.CachedStatement.execute(CachedStatement.java:339) at mila.lexicon.dbUtils.Connected.getData(Connected.java:257) at mila.lexicon.dbUtils.Prefixes.get(Prefixes.java:29) at mila.lexicon.analyse.Data.getPrefixes(Data.java:446) at mila.HMM.HMM2Morph.handlePrefixProperNameAnalysis(HMM2Morph.java:1196) at mila.HMM.HMM2Morph.parseXML(HMM2Morph.java:1791) at mila.HMM.HMM2Morph.process(HMM2Morph.java:2337) at org.apache.jsp.processAnalyzerXML_jsp._jspService(processAnalyzerXML_jsp.java:187) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1024) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.mariadb.jdbc.internal.common.QueryException: Could not send query: Last packet not finished at org.mariadb.jdbc.internal.mysql.MySQLProtocol.executeQuery(MySQLProtocol.java:984) at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:281) ... 31 more Caused by: java.io.IOException: Last packet not finished at org.mariadb.jdbc.internal.common.packet.PacketOutputStream.startPacket(PacketOutputStream.java:38) at org.mariadb.jdbc.internal.common.packet.commands.StreamedQueryPacket.send(StreamedQueryPacket.java:76) at org.mariadb.jdbc.internal.mysql.MySQLProtocol.executeQuery(MySQLProtocol.java:982) ... 32 more
우리는 충분한 정보를 가지고 있지 않지만, mysql 서버에서도 비슷한 문제가 있었습니다.에서 타임아웃 설정을 변경한 후 문제가 해결되었습니다.my.cnf
wait_timeout = 28800
interactive_timeout = 28800
28800 secon - 8시간
변경 내용을 적용하려면 서버를 재시작합니다.
언급URL : https://stackoverflow.com/questions/26755943/mariadb-fails-to-work-after-being-idle-for-a-period
'programing' 카테고리의 다른 글
BeforeRouteEnter 함수 및 Vuex 문제 (0) | 2022.12.01 |
---|---|
Java 1.8 ASM ClassReader가 클래스 파일을 구문 분석하지 못했습니다. 아마도 아직 지원되지 않는 새로운 Java 클래스 파일 버전 때문일 수 있습니다. (0) | 2022.12.01 |
루프가 정말 역방향으로 더 빠릅니까? (0) | 2022.12.01 |
mysqldump는 [client]설정 섹션에서 호출기가 설정되어 있는 경우 실패한다. (0) | 2022.12.01 |
==가 아닌 경우 Python vs!= (0) | 2022.12.01 |