GwMetric ibatis -> jpa 로 변경
This commit is contained in:
@@ -1,99 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
|
||||
|
||||
<sqlMap namespace="ObpGwMetric">
|
||||
|
||||
<!-- EAIBZWKDSTCD 코드 목록 조회 (TSEAICM01) -->
|
||||
<statement id="selectAllBzwkCodes" parameterClass="java.util.HashMap" resultClass="java.lang.String">
|
||||
SELECT EAIBZWKDSTCD
|
||||
FROM $schemaId$.TSEAICM01
|
||||
ORDER BY EAIBZWKDSTCD
|
||||
</statement>
|
||||
|
||||
<!-- 로그 집계 결과 매핑 -->
|
||||
<resultMap id="obpGwMetricResult" class="com.eactive.eai.rms.data.entity.onl.apim.obp.ObpGwMetricVO">
|
||||
<result property="apiId" column="API_ID"/>
|
||||
<result property="clientId" column="CLIENT_ID"/>
|
||||
<result property="hostname" column="HOSTNAME"/>
|
||||
<result property="orgId" column="ORG_ID"/>
|
||||
<result property="timeslice" column="TIMESLICE"/>
|
||||
<result property="attemptedCount" column="ATTEMPTED_COUNT"/>
|
||||
<result property="completedCount" column="COMPLETED_COUNT"/>
|
||||
<result property="eaiSvcSerno" column="EAI_SVC_SERNO"/>
|
||||
</resultMap>
|
||||
|
||||
<!--
|
||||
EAIBZWKDSTCD별 시간대 로그 집계 (Index Range Scan 활용)
|
||||
|
||||
에러 판단 기준:
|
||||
- 성공 조건: RSPNSERRCDNAME IS NULL 또는 RSPNSERRCDNAME LIKE 'ESB%'
|
||||
- 에러 조건: RE%, RF%, REC%, RIB%, 기타 모든 에러 코드
|
||||
|
||||
성능 최적화:
|
||||
- PK 인덱스 (EAIBZWKDSTCD, MSGDPSTYMS, EAISVCSERNO, LOGPRCSSSERNO) 활용
|
||||
- EAIBZWKDSTCD를 고정하여 Index Range Scan 보장
|
||||
-->
|
||||
<statement id="selectHourlyMetricsByBzwkCode" parameterClass="java.util.HashMap" resultMap="obpGwMetricResult">
|
||||
SELECT
|
||||
EAISVCNAME AS API_ID,
|
||||
CLIENTID AS CLIENT_ID,
|
||||
EAISEVRINSTNCNAME AS HOSTNAME,
|
||||
ORGID AS ORG_ID,
|
||||
'$timeslice$' AS TIMESLICE,
|
||||
SUM(CASE WHEN LOGPRCSSSERNO = '100' THEN 1 ELSE 0 END) AS ATTEMPTED_COUNT,
|
||||
SUM(CASE WHEN LOGPRCSSSERNO = '400'
|
||||
AND (RSPNSERRCDNAME IS NULL OR RSPNSERRCDNAME LIKE 'ESB%')
|
||||
THEN 1 ELSE 0 END) AS COMPLETED_COUNT,
|
||||
MAX(TRIM(EAISVCSERNO)) AS EAI_SVC_SERNO
|
||||
FROM $schemaId$.$tableName$
|
||||
WHERE EAIBZWKDSTCD = #bzwkCode#
|
||||
AND MSGDPSTYMS BETWEEN #startTime# AND #endTime#
|
||||
GROUP BY EAISVCNAME, CLIENTID, EAISEVRINSTNCNAME, ORGID
|
||||
HAVING SUM(CASE WHEN LOGPRCSSSERNO = '100' THEN 1 ELSE 0 END) > 0
|
||||
OR SUM(CASE WHEN LOGPRCSSSERNO = '400' THEN 1 ELSE 0 END) > 0
|
||||
</statement>
|
||||
|
||||
<!-- API 이름 조회 (TSEAIHE01) -->
|
||||
<statement id="selectApiNames" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
EAISVCNAME AS API_ID,
|
||||
EAISVCDESC AS API_NAME
|
||||
FROM $schemaId$.TSEAIHE01
|
||||
WHERE EAISVCNAME IN
|
||||
<iterate property="apiIds" open="(" close=")" conjunction=",">
|
||||
#apiIds[]#
|
||||
</iterate>
|
||||
</statement>
|
||||
|
||||
<!--
|
||||
URI 및 HTTP Method 조회 (HTTP_ADAPTER_EXTRA_LOG)
|
||||
- GUID = TSEAILG1X.EAISVCSERNO
|
||||
- SERVICE_PROCESS_NUMBER = 100 (인바운드 요청)
|
||||
- 결과: HTTP_METHOD (예: POST), URL (예: /mapi/kjbank/obp/kakaobank/v3/loan/query)
|
||||
-->
|
||||
<statement id="selectUris" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
GUID AS EAI_SVC_SERNO,
|
||||
URL AS URI,
|
||||
HTTP_METHOD AS METHOD
|
||||
FROM $schemaId$.HTTP_ADAPTER_EXTRA_LOG
|
||||
WHERE SERVICE_PROCESS_NUMBER = 100
|
||||
AND GUID IN
|
||||
<iterate property="eaiSvcSernos" open="(" close=")" conjunction=",">
|
||||
#eaiSvcSernos[]#
|
||||
</iterate>
|
||||
</statement>
|
||||
|
||||
<!-- AppId 조회 (ptl_app_request) - org_id로 조회 -->
|
||||
<statement id="selectAppIdsByOrgIds" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
ORG_ID,
|
||||
ID AS APP_ID
|
||||
FROM PTL_APP_REQUEST
|
||||
WHERE ORG_ID IN
|
||||
<iterate property="orgIds" open="(" close=")" conjunction=",">
|
||||
#orgIds[]#
|
||||
</iterate>
|
||||
</statement>
|
||||
|
||||
</sqlMap>
|
||||
Reference in New Issue
Block a user