모니터링 타임아웃 분류 및 응답에러코드 널 안전성 수정

- EAIServiceMonitor: timeOutCodes.indexOf 판정을 '> 0' -> '>= 0' 으로 수정
  (목록 첫 번째 코드가 타임아웃이 아닌 시스템에러로 분류되던 문제)
- EAIServiceMonitor: getLogRspErrCd() null 대비 defaultString 적용, 리터럴 비교 순서 변경
- EAILogDAO, EAIFileLogger: 응답에러코드 substring(1,2) 를 널 안전한 StringUtils.substring 으로 교체
This commit is contained in:
curry772
2026-08-28 10:43:54 +09:00
parent dd7c8a29bf
commit 7677f23767
3 changed files with 10 additions and 8 deletions
@@ -717,7 +717,8 @@ public class EAIFileLogger
sb.appendAndDelimeter( NullControl.addSpace(message.getRspnsChngMsgType())); // 응답변환유형
// log level 'E' or 'F'
if ("E".equals(logRspErrCd.substring(1, 2)) || "F".equals(logRspErrCd.substring(1, 2))) {
String logErrLvl = StringUtils.substring(logRspErrCd, 1, 2);
if ("E".equals(logErrLvl) || "F".equals(logErrLvl)) {
sb.appendAndDelimeter( NullControl.addSpace(logRspErrCd)); //EAI에러코드
sb.appendAndDelimeter( StringUtil.chunkString(message.getRspErrMsg(),1000)); //EAI에러내용
}
@@ -661,8 +661,8 @@ public class EAILogDAO {
eaiLog.setRspnschngmsgtype(message.getRspnsChngMsgType());
// log level 'E' or 'F'
if ("E".equals(logRspErrCd.substring(1, 2))
|| "F".equals(logRspErrCd.substring(1, 2))) {
String logErrLvl = StringUtils.substring(logRspErrCd, 1, 2);
if ("E".equals(logErrLvl) || "F".equals(logErrLvl)) {
// EAI에러코드
eaiLog.setEaierrcd(logRspErrCd);
// EAI에러내용
@@ -770,8 +770,8 @@ public class EAILogDAO {
// 수동시스템어댑터업무그룹명
eaiErrorLog.setPsvsysadptrbzwkgroupname(message.getCurrentSvcMsg().getPsvSysItfTp());
if ("E".equals(logRspErrCd.substring(1, 2))
|| "F".equals(logRspErrCd.substring(1, 2))) {
String logErrLvl = StringUtils.substring(logRspErrCd, 1, 2);
if ("E".equals(logErrLvl) || "F".equals(logErrLvl)) {
// EAI에러코드
eaiErrorLog.setEaierrcd(logRspErrCd);
// EAI에러내용
@@ -292,7 +292,7 @@ public class EAIServiceMonitor implements Lifecycle {
msgPssTm = msg.getMsgPssTm();
msgRcvTm = msg.getMsgRcvTm();
logPssSno = msg.getLogPssSno();
rspErrCd = msg.getLogRspErrCd();
rspErrCd = StringUtils.defaultString(msg.getLogRspErrCd());
eaiSvcCd = msg.getEAISvcCd();
svcOgNo = msg.getSvcOgNo();
bwkCls = msg.getBwkCls();
@@ -317,7 +317,7 @@ public class EAIServiceMonitor implements Lifecycle {
error = rspErrCd.substring(1, 2);
}
if (rspErrCd.equals("RECEAIINA001")) {
if ("RECEAIINA001".equals(rspErrCd)) {
error = "S";
}
@@ -326,7 +326,8 @@ public class EAIServiceMonitor implements Lifecycle {
iErrorCode = 1;
// Timeout
if (timeOutCodes.indexOf(rspErrCd) > 0) {
// 목록 첫 번째 코드는 indexOf 가 0 이므로 '> 0' 이면 매칭되지 않는다. (isTimeOutCodes() 와 동일하게 '>= 0')
if (timeOutCodes.indexOf(rspErrCd) >= 0) {
iErrorCode = 2;
}
// 업무에러코드에 없을 경우 통신(시스템)에러로 처리함