거래로그의 오류 출력 부분 수정

- 오류 발생 시 AdapterErrorMessageHandler가 처리하여도 400 오류로 출력되도록 수정
- 업무 오류 발생 시 AdapterErrorMessageHandler가 처리하여도 에러 RECEAIINA001 출력
This commit is contained in:
curry772
2026-08-26 09:47:02 +09:00
parent 585a9e4520
commit e9fbffa87e
8 changed files with 46 additions and 18 deletions
@@ -151,7 +151,7 @@ public class DBLogTransactionLogger implements TransactionLogger {
// 템플릿만 남겨두고, 나머지는 사이트에 맞게 수정 필요함.
//---------------------------------------------------->
boolean itsmEnabled = false;
if((itsmEnabled) && !MessageUtil.checkRspErrCd(message.getRspErrCd())) {
if((itsmEnabled) && !MessageUtil.checkRspErrCd(message.getLogRspErrCd())) {
if(logger.isDebug()) {
logger.debug(guidLogPrefix + " ITSM Error Message Notify! ");
}
@@ -276,6 +276,8 @@ public class EAIFileLogger
String psvItfTp = svcMsg.getPsvItfTp(); // 수동 Syunc/Async
int logPssSno = message.getLogPssSno();
String rspErrCd = message.getRspErrCd();
// 내부오류 대체응답 시 원본 에러코드 기준으로 로깅한다.
String logRspErrCd = message.getLogRspErrCd();
// Duplication Error 방지를 위해
// 원 로그처리일련번호를 저장 : 2009.07.13
@@ -629,7 +631,7 @@ public class EAIFileLogger
sb.appendAndDelimeter( NullControl.addSpace(message.getSngSysItfTp())); //기동시스템어댑터업무그룹명
sb.appendAndDelimeter( NullControl.addSpace(message.getLydMsgID())); //현재메시지ID명
sb.appendAndDelimeter( NullControl.addSpace(message.getRspErrCd())); //응답에러코드명
sb.appendAndDelimeter( NullControl.addSpace(logRspErrCd)); //응답에러코드명
sb.appendAndDelimeter( msgPssTm); //메시지처리시각
sb.appendAndDelimeter( String.valueOf(message.getSvrLogLvl())); //서버로그레벨번호
//index 20
@@ -715,8 +717,8 @@ public class EAIFileLogger
sb.appendAndDelimeter( NullControl.addSpace(message.getRspnsChngMsgType())); // 응답변환유형
// log level 'E' or 'F'
if ("E".equals(message.getRspErrCd().substring(1, 2)) || "F".equals(message.getRspErrCd().substring(1, 2))) {
sb.appendAndDelimeter( NullControl.addSpace(message.getRspErrCd())); //EAI에러코드
if ("E".equals(logRspErrCd.substring(1, 2)) || "F".equals(logRspErrCd.substring(1, 2))) {
sb.appendAndDelimeter( NullControl.addSpace(logRspErrCd)); //EAI에러코드
sb.appendAndDelimeter( StringUtil.chunkString(message.getRspErrMsg(),1000)); //EAI에러내용
}
else {
@@ -220,6 +220,8 @@ public class EAILogDAO {
String psvItfTp = svcMsg.getPsvItfTp(); // 수동 Syunc/Async
int logPssSno = message.getLogPssSno();
String rspErrCd = message.getRspErrCd();
// 내부오류 대체응답 시 원본 에러코드 기준으로 로깅한다.
String logRspErrCd = message.getLogRspErrCd();
// Duplication Error 방지를 위해
// 원 로그처리일련번호를 저장 : 2009.07.13
@@ -565,7 +567,7 @@ public class EAILogDAO {
// 현재메시지ID명
eaiLog.setPrsntmsgidname(message.getLydMsgID());
// 응답에러코드명
eaiLog.setRspnserrcdname(message.getRspErrCd());
eaiLog.setRspnserrcdname(logRspErrCd);
// 메시지처리시각
eaiLog.setMsgprcssyms(msgPssTm);
// 서버로그레벨번호
@@ -659,10 +661,10 @@ public class EAILogDAO {
eaiLog.setRspnschngmsgtype(message.getRspnsChngMsgType());
// log level 'E' or 'F'
if ("E".equals(message.getRspErrCd().substring(1, 2))
|| "F".equals(message.getRspErrCd().substring(1, 2))) {
if ("E".equals(logRspErrCd.substring(1, 2))
|| "F".equals(logRspErrCd.substring(1, 2))) {
// EAI에러코드
eaiLog.setEaierrcd(message.getRspErrCd());
eaiLog.setEaierrcd(logRspErrCd);
// EAI에러내용
eaiLog.setEaierrctnt(StringUtil.chunkString(message.getRspErrMsg(), 1000));
}
@@ -724,11 +726,11 @@ public class EAILogDAO {
}
// 에러로그를 별도의 테이블에 저장하도록 한다.
if (!MessageUtil.checkRspErrCd(message.getRspErrCd())) {
if (!MessageUtil.checkRspErrCd(logRspErrCd)) {
try {
// 거래통제, 유량제어에 의한 에러는 저장하지 않도록 한다.
if (!(EAIMessageKeys.EAI_BLOCKED_CODE.equals(message.getRspErrCd())
|| EAIMessageKeys.EAI_INFLOW_BLOCKED_CODE.equals(message.getRspErrCd()))) {
if (!(EAIMessageKeys.EAI_BLOCKED_CODE.equals(logRspErrCd)
|| EAIMessageKeys.EAI_INFLOW_BLOCKED_CODE.equals(logRspErrCd))) {
addErrorLog(message); // 에러로그
}
} catch (Exception ex) {
@@ -741,6 +743,8 @@ public class EAILogDAO {
public void addErrorLog(EAIMessage message) throws DAOException {
try {
String serverName = EAIServerManager.getInstance().getLocalServerName();
// 내부오류 대체응답 시 원본 에러코드 기준으로 로깅한다.
String logRspErrCd = message.getLogRspErrCd();
EAIErrorLog eaiErrorLog = (EAIErrorLog) applicationContext.getBean(RollingTable.class, EAIErrorLog.class,
message.getMsgRcvTm());
@@ -760,16 +764,16 @@ public class EAILogDAO {
// EAI서비스명
eaiErrorLog.setEaisvcname(message.getEAISvcCd());
// 응답에러코드명
eaiErrorLog.setRspnserrcdname(message.getRspErrCd());
eaiErrorLog.setRspnserrcdname(logRspErrCd);
// 기동시스템어댑터업무그룹명
eaiErrorLog.setGstatsysadptrbzwkgroupname(message.getSngSysItfTp());
// 수동시스템어댑터업무그룹명
eaiErrorLog.setPsvsysadptrbzwkgroupname(message.getCurrentSvcMsg().getPsvSysItfTp());
if ("E".equals(message.getRspErrCd().substring(1, 2))
|| "F".equals(message.getRspErrCd().substring(1, 2))) {
if ("E".equals(logRspErrCd.substring(1, 2))
|| "F".equals(logRspErrCd.substring(1, 2))) {
// EAI에러코드
eaiErrorLog.setEaierrcd(message.getRspErrCd());
eaiErrorLog.setEaierrcd(logRspErrCd);
// EAI에러내용
eaiErrorLog.setEaierrctnt(StringUtil.chunkString(message.getRspErrMsg(), 500));
}
@@ -72,7 +72,7 @@ public class EAILogSender {
}
}
else if(svcLogLvl == 1) {
isLogging = ! MessageUtil.checkRspErrCd(message.getRspErrCd());
isLogging = ! MessageUtil.checkRspErrCd(message.getLogRspErrCd());
}
else {
isLogging = false;