MariaDB 에서 인사연동 구동 시, DB 연결이 끊어지고 동작이 중지되는 문제
문의사항
- MariaDB에서 인사정보 연동 진행 시 Socket 통신 오류로 인한 DB 연결 끊어짐 현상이 발생합니다. (MariaDB 사용 버전 : 10.4.7)
-
인사연동 시 Error 로그는 아래와 같습니다.
[ERROR] 20/11/05 09:18:18,654 main - logType : dev.softcamp.swork.spdts.ext.out.standard.method.CustomizedMethod, message : insaDeleteDutyInfo() fail
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in bundleresource://12.fwk1930925844/dev/softcamp/swork/spdts/ext/out/standard/method/dbms/mariadb//standard_out.xml.
--- The error occurred while applying a parameter map.
--- Check the insaDeleteDutyInfo.Param.
--- Check the statement (update procedure failed).
--- Cause: java.sql.SQLNonTransientConnectionException: (conn=15) Connection reset
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:201)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForObject(MappedStatement.java:120)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:529)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:504)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:82)
at dev.softcamp.swork.spdts.ext.out.standard.method.dbms.CustomizedDBManager.insaDeleteDutyInfo(CustomizedDBManager.java:483)
at dev.softcamp.swork.spdts.ext.out.standard.method.CustomizedMethod.insaDeleteDutyInfo(CustomizedMethod.java:1409)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at dev.softcamp.swork.spdts.agent.SPDTSAgent.executeMethod(SPDTSAgent.java:85)
at dev.softcamp.swork.spdts.agent.SPDTSAgent.run(SPDTSAgent.java:72)이하 생략....
답변사항
- 원인은 MariaDB 일부 버전에서 EXIST or NOT EXIST 구문을 쓰면 DB에서 crash 버그가 발생합니다. ( 인사 프로시저에서는 EXIST or NOT EXIST 구문을 많이 사용. )
- MariaDB 버그 버전 : 10.4 / 10.4.7 / 10.5
- 조치 방법은 MariaDB 버전을 10.3 이하로 설치하는 것을 권장드립니다.
(참고) MariaDB 버그 리포트
- https://jira.mariadb.org/browse/MDEV-20803
- https://jira.mariadb.org/browse/MDEV-23094 ← 일부 버전에서 다중 프로시저 실행이 안되는 문제.