curry772 ec6b51f2a8 정상 응답 MSG 코드/메시지를 레이아웃 기본값 대신 명시적으로 설정
outp_msg_cd(NCMM00001) / outp_msg_ctnt(정상처리되었습니다.) 가 표준전문 레이아웃의
기본값으로 붙어 있어서, "아무도 채우지 않은 상태" 와 "정상이라고 판정한 상태" 가
값만으로 구분되지 않았다. 2026-09 사고에서 MSG 부 파싱이 통째로 스킵됐는데도
오류가 "정상처리되었습니다." 로 보고된 것이 이 때문이다.

레이아웃 기본값을 없애고, StandardMessageCoordinatorDJB.coordinateBeforeResponse 에서
정상 응답일 때만 채운다. 이 메서드는 모든 동기 응답이 거치는 마지막 관문이라
(RequestProcessor 에서 호출) 경로를 빠짐없이 덮는다.

두 조건을 함께 본다.
 - 정상 응답(procs_rslt_dvcd=S) 일 때만. 오류 응답에 정상 메시지를 채우면 사고 재현이다.
 - 값이 비어 있을 때만(setIfBlank). 대외계가 표준응답으로 보낸 MSG 가 우선이며
   덮어쓰면 JsonReader 의 MSG 부 보존 수정이 무의미해진다.

테스트: 기존 3건이 coordinateAfterRecvNonStdSyncResponse 직후에 단정하고 있었으나
값은 이제 마지막 관문에서 채워지므로, 실제 흐름대로 coordinateBeforeResponse 까지
거치도록 고치고 단정도 "공백 아님" 에서 상수 일치로 강화했다.
설계 조건을 지키는 회귀 테스트 2건을 추가했다.
 - 오류응답에는_정상메시지가_채워지지_않는다
 - 대외계가_보낸_MSG_값은_덮어쓰지_않는다

주의: 이 CSV 는 layout.file.type=CSV 인 테스트 설정에서만 쓰인다. 운영은 DB 레이아웃을
읽으므로 DB 의 두 항목 기본값도 함께 비워야 실제 효과가 있다. 비우기 전까지는
setIfBlank 가 아무것도 하지 않아 기존과 동일하게 동작한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UnybKuxcuPafGhVGh4wqkZ
2026-09-03 10:20:13 +09:00
2026-08-15 11:23:16 +09:00
2025-12-11 11:17:08 +09:00
2025-12-30 13:59:29 +09:00
2025-09-05 19:06:22 +09:00
2026-01-09 16:16:30 +09:00
2025-09-05 19:06:22 +09:00
2026-07-23 11:44:35 +09:00
2025-09-05 19:06:22 +09:00
2025-09-05 19:06:22 +09:00
2025-09-05 19:06:22 +09:00
2025-09-05 19:06:22 +09:00
2025-09-05 19:06:22 +09:00

eLink ONLINE

eLink 온라인 거래처리 시스템으로 실시간으로 메시지 통신하는 전반적인 처리를 수행한다.
eLink 코어 및 통신, 변환 모듈을 참조하며, 각 사이트 별 커스텀 로직은 본 모듈에 작성하여 개발을 수행한다.

eLink 모듈을 참조하여 구성되어있다.

이름 버전 설명
elink-online-core 4.5-SNAPSHOT 코어 모듈로 인터페이스 클래스 정의
elink-online-transformer 4.5-SNAPSHOT 변환 모듈로 메시지 및 변환 관련 클래스 정의
elink-online-adapter 4.5-SNAPSHOT 어댑터 모듈로 통신에 필요한 어댑터 클래스 정의
elink-online-common 4.5-SNAPSHOT 나머지 공통 프로그램이 정의되어있다
elink-online-emsclient 4.5-SNAPSHOT ems와 통신하기 위한 모듈

TOMCAT 기동 옵션 참조

-Deai.jdbc.Name=NDAPIGW_APP_NXA
-Dinst.Name=apigw11
-Deai.systemtype=API
-Deai.tableowner=apigw
-Deai.systemmode=D
-Dfile.encoding=utf-8
-Djava.net.preferIPv4Stack=true
-Dlogger.async.active=true

항목 설멍

eai.rmiport, eai.rmiserviceport : Spring RMI를 사용하는 port 정보
scalable : 클라우드 환경 여부, true 일 경우 서버 정보를 기동시 자동 등록
use.internal.queue : JMS 큐대신 내부 ActiveMQ 사용
logger.async.active : 비동기 로그 처리 여부, false일 경우 DB저장시 Sync 처리

StandardMessage WebApp 외부 설정파일 지정 방법

지정하지 않은 경우 resources의 파일을 참고함.

-Dstandard.message.config=D:/workspace/MessageGenerator/resources/standard-message-config.properties
S
Description
No description provided
Readme 4.3 MiB
Languages
Java 89.5%
CSS 6.6%
JavaScript 3.8%