diff --git a/WebContent/WEB-INF/weblogic.xml b/WebContent/WEB-INF/weblogic.xml index ec07529..7905f48 100644 --- a/WebContent/WEB-INF/weblogic.xml +++ b/WebContent/WEB-INF/weblogic.xml @@ -6,10 +6,10 @@ monitoring - 3600 + 1800 JSESSIONID_EMS - memory - replicated_if_clustered + + replicated_if_clustered diff --git a/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp b/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp index d32d033..2e2a48c 100644 --- a/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp +++ b/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp @@ -211,6 +211,22 @@ layoutInfo = json.standardHeader; bzwkdatatntInfo = json.BZWKDATACTNT; + // bzwkdatatntInfoLength 파싱 및 패딩 처리 + let bzwkdatatntInfoLength = 0; + try { + bzwkdatatntInfoLength = parseInt(layoutInfo[layoutInfo.length - 2].value, 10); + if (isNaN(bzwkdatatntInfoLength)) { + bzwkdatatntInfoLength = 0; + } + } catch (e) { + bzwkdatatntInfoLength = 0; + } + + // bzwkdatatntInfo 패딩 적용 + if (bzwkdatatntInfoLength > 0 && bzwkdatatntInfo) { + bzwkdatatntInfo = padByteString(bzwkdatatntInfo, bzwkdatatntInfoLength); + } + if((isInboundPart && isInboundWithoutNet) || (isOutboundPart && isOutboundWithoutNet)){ selectHttpLog(url, prcsDate, json.EAISVCSERNO.trim(), logPrcssSerno); }else{ @@ -897,9 +913,42 @@ $(document).ready(function() { // console.log("변환 완료:", parsedList); } - + }); +/** + * 문자열의 바이트 수 계산 (한글 2바이트, 영문/숫자 1바이트) + */ +function getByteLength(str) { + let byteCount = 0; + for (let i = 0; i < str.length; i++) { + const charCode = str.charCodeAt(i); + byteCount += (charCode >= 0xAC00 && charCode <= 0xD7A3) ? 2 : 1; + } + return byteCount; +} + +/** + * 문자열을 주어진 바이트 수만큼 패딩 + * @param {string} str - 원본 문자열 + * @param {number} targetBytes - 목표 바이트 수 + * @param {string} position - 'left' 또는 'right' (기본: 'right') + * @param {string} padChar - 패딩 문자 (기본: 공백) + * @returns {string} - 패딩된 문자열 + */ +function padByteString(str, targetBytes, position = 'right', padChar = ' ') { + const currentBytes = getByteLength(str); + + if (currentBytes >= targetBytes) { + return str; // 이미 목표 바이트 이상이면 그대로 반환 + } + + const paddingBytes = targetBytes - currentBytes; + const padding = padChar.repeat(paddingBytes); + + return position === 'left' ? padding + str : str + padding; +} +