(version: 1.0.7)

DB 커넥션 상태 체크 및 재접속 기능 추가
메시지 객체 파일 수동 처리 기능 추가
main
semin.baek 4 months ago
parent 22477dc9bd
commit 650cddee59

@ -5,7 +5,7 @@ plugins {
} }
group = 'com.bsmlab.dfx' group = 'com.bsmlab.dfx'
version = '1.0.6-alpha' version = '1.0.7'
// git commit hash -> application.yml // git commit hash -> application.yml
def gitCommitId = '' def gitCommitId = ''

@ -189,10 +189,10 @@
<select id="selectDlvgDcuListForSend" resultType="map"> <select id="selectDlvgDcuListForSend" resultType="map">
<![CDATA[ <![CDATA[
/* 자재관리 자재납품마스터_DCU 송신 */ /* 자재관리 자재납품마스터_DCU 송신 */
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, WAN_MAC_ADDR, AMI_FRMW_VER_NM, MST_PLC_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, WAN_MAC_ADDR, AMI_FRMW_VER_NM, MST_PLC_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO, PLLT_NO
, MOD_ID, MOD_DATE, REG_ID, REG_DATE , MOD_ID, MOD_DATE, REG_ID, REG_DATE
FROM ( FROM (
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, WAN_MAC_ADDR, AMI_FRMW_VER_NM, MST_PLC_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, WAN_MAC_ADDR, AMI_FRMW_VER_NM, MST_PLC_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO, PLLT_NO
, MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE , MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE
, ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM , ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM
FROM TM_DLVG_DCU FROM TM_DLVG_DCU
@ -214,7 +214,7 @@
AND (EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) IN ( AND (EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) IN (
SELECT EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID SELECT EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID
FROM ( FROM (
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, WAN_MAC_ADDR, AMI_FRMW_VER_NM, MST_PLC_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, WAN_MAC_ADDR, AMI_FRMW_VER_NM, MST_PLC_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO, PLLT_NO
, MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE , MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE
, ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM , ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM
FROM TM_DLVG_DCU FROM TM_DLVG_DCU
@ -230,10 +230,10 @@
<select id="selectDlvgModmListForSend" resultType="map"> <select id="selectDlvgModmListForSend" resultType="map">
<![CDATA[ <![CDATA[
/* 자재관리 자재납품마스터_모뎀 송신 */ /* 자재관리 자재납품마스터_모뎀 송신 */
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, MODM_MAC_ADDR, MCU_FRMW_VER_NM, PLC_CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, MODM_MAC_ADDR, MCU_FRMW_VER_NM, PLC_CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO, PLLT_NO
, MOD_ID, MOD_DATE, REG_ID, REG_DATE , MOD_ID, MOD_DATE, REG_ID, REG_DATE
FROM ( FROM (
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, MODM_MAC_ADDR, MCU_FRMW_VER_NM, PLC_CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, MODM_MAC_ADDR, MCU_FRMW_VER_NM, PLC_CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO, PLLT_NO
, MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE , MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE
, ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM , ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM
FROM TM_DLVG_MODM FROM TM_DLVG_MODM
@ -255,7 +255,7 @@
AND (EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) IN ( AND (EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) IN (
SELECT EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID SELECT EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID
FROM ( FROM (
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, MODM_MAC_ADDR, MCU_FRMW_VER_NM, PLC_CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, MODM_MAC_ADDR, MCU_FRMW_VER_NM, PLC_CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO, PLLT_NO
, MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE , MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE
, ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM , ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM
FROM TM_DLVG_MODM FROM TM_DLVG_MODM
@ -271,10 +271,10 @@
<select id="selectDlvgMetrListForSend" resultType="map"> <select id="selectDlvgMetrListForSend" resultType="map">
<![CDATA[ <![CDATA[
/* 자재관리 자재납품마스터_계기 송신 */ /* 자재관리 자재납품마스터_계기 송신 */
SELECT EXL_UPD_GRP_NO, MTRL_ID, AMMS_DLVG_HDQR_CL_CD, ANNC_NO, MNFCO_CL_CD, BX_NO, MTRL_NO, MNFCT_YM, LSEFT_YM SELECT EXL_UPD_GRP_NO, MTRL_ID, AMMS_DLVG_HDQR_CL_CD, ANNC_NO, MNFCO_CL_CD, BX_NO, MTRL_NO, MNFCT_YM, LSEFT_YM, PLLT_NO
, MOD_ID, MOD_DATE, REG_ID, REG_DATE , MOD_ID, MOD_DATE, REG_ID, REG_DATE
FROM ( FROM (
SELECT EXL_UPD_GRP_NO, MTRL_ID, AMMS_DLVG_HDQR_CL_CD, ANNC_NO, MNFCO_CL_CD, BX_NO, MTRL_NO, MNFCT_YM, LSEFT_YM SELECT EXL_UPD_GRP_NO, MTRL_ID, AMMS_DLVG_HDQR_CL_CD, ANNC_NO, MNFCO_CL_CD, BX_NO, MTRL_NO, MNFCT_YM, LSEFT_YM, PLLT_NO
, MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE , MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE
, ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM , ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM
FROM TM_DLVG_METR FROM TM_DLVG_METR
@ -296,7 +296,7 @@
AND (EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) IN ( AND (EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) IN (
SELECT EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID SELECT EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID
FROM ( FROM (
SELECT EXL_UPD_GRP_NO, MTRL_ID, AMMS_DLVG_HDQR_CL_CD, ANNC_NO, MNFCO_CL_CD, BX_NO, MTRL_NO, MNFCT_YM, LSEFT_YM SELECT EXL_UPD_GRP_NO, MTRL_ID, AMMS_DLVG_HDQR_CL_CD, ANNC_NO, MNFCO_CL_CD, BX_NO, MTRL_NO, MNFCT_YM, LSEFT_YM, PLLT_NO
, MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE , MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE
, ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM , ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM
FROM TM_DLVG_METR FROM TM_DLVG_METR
@ -312,10 +312,10 @@
<select id="selectDlvgLteModmListForSend" resultType="map"> <select id="selectDlvgLteModmListForSend" resultType="map">
<![CDATA[ <![CDATA[
/* 자재관리 자재납품마스터_LTE모뎀 송신 */ /* 자재관리 자재납품마스터_LTE모뎀 송신 */
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, LHV_CL_CD, AMMS_CMN_NW_TP_CL_CD, MTRL_NO, CNTR_CO_BIZR_REG_NO, CMCO_CD, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, MNFCO_CL_CD, CRC_NO, MODM_UNITC, CRC_CHRG, MODM_MAC_ADDR, SMGWC_ID, FRMW_VER_NM, CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, TEQP_IDNT_NO, USIM_NO, IPV6_ADDR, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, LHV_CL_CD, AMMS_CMN_NW_TP_CL_CD, MTRL_NO, CNTR_CO_BIZR_REG_NO, CMCO_CD, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, MNFCO_CL_CD, CRC_NO, MODM_UNITC, CRC_CHRG, MODM_MAC_ADDR, SMGWC_ID, FRMW_VER_NM, CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, TEQP_IDNT_NO, USIM_NO, IPV6_ADDR, SRL_NO, PLLT_NO
, MOD_ID, MOD_DATE, REG_ID, REG_DATE , MOD_ID, MOD_DATE, REG_ID, REG_DATE
FROM ( FROM (
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, LHV_CL_CD, AMMS_CMN_NW_TP_CL_CD, MTRL_NO, CNTR_CO_BIZR_REG_NO, CMCO_CD, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, MNFCO_CL_CD, CRC_NO, MODM_UNITC, CRC_CHRG, MODM_MAC_ADDR, SMGWC_ID, FRMW_VER_NM, CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, TEQP_IDNT_NO, USIM_NO, IPV6_ADDR, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, LHV_CL_CD, AMMS_CMN_NW_TP_CL_CD, MTRL_NO, CNTR_CO_BIZR_REG_NO, CMCO_CD, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, MNFCO_CL_CD, CRC_NO, MODM_UNITC, CRC_CHRG, MODM_MAC_ADDR, SMGWC_ID, FRMW_VER_NM, CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, TEQP_IDNT_NO, USIM_NO, IPV6_ADDR, SRL_NO, PLLT_NO
, MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE , MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE
, ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM , ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM
FROM TM_DLVG_LTE_MODM FROM TM_DLVG_LTE_MODM
@ -337,7 +337,7 @@
AND (EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) IN ( AND (EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) IN (
SELECT EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID SELECT EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID
FROM ( FROM (
SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, LHV_CL_CD, AMMS_CMN_NW_TP_CL_CD, MTRL_NO, CNTR_CO_BIZR_REG_NO, CMCO_CD, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, MNFCO_CL_CD, CRC_NO, MODM_UNITC, CRC_CHRG, MODM_MAC_ADDR, SMGWC_ID, FRMW_VER_NM, CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, TEQP_IDNT_NO, USIM_NO, IPV6_ADDR, SRL_NO SELECT EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, LHV_CL_CD, AMMS_CMN_NW_TP_CL_CD, MTRL_NO, CNTR_CO_BIZR_REG_NO, CMCO_CD, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, MNFCO_CL_CD, CRC_NO, MODM_UNITC, CRC_CHRG, MODM_MAC_ADDR, SMGWC_ID, FRMW_VER_NM, CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, TEQP_IDNT_NO, USIM_NO, IPV6_ADDR, SRL_NO, PLLT_NO
, MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE , MOD_ID, TO_CHAR(MOD_DATE, 'YYYYMMDDHH24MISS') AS MOD_DATE, REG_ID, TO_CHAR(REG_DATE, 'YYYYMMDDHH24MISS') AS REG_DATE
, ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM , ROW_NUMBER() OVER (ORDER BY EXL_UPD_GRP_NO, AMMS_DLVG_HDQR_CL_CD, MTRL_ID) AS R_NUM
FROM TM_DLVG_LTE_MODM FROM TM_DLVG_LTE_MODM

@ -222,11 +222,11 @@
USING DUAL ON (EXL_UPD_GRP_NO = #{EXL_UPD_GRP_NO} AND AMMS_DLVG_HDQR_CL_CD = #{AMMS_DLVG_HDQR_CL_CD} AND MTRL_ID = #{MTRL_ID}) USING DUAL ON (EXL_UPD_GRP_NO = #{EXL_UPD_GRP_NO} AND AMMS_DLVG_HDQR_CL_CD = #{AMMS_DLVG_HDQR_CL_CD} AND MTRL_ID = #{MTRL_ID})
WHEN NOT MATCHED THEN WHEN NOT MATCHED THEN
INSERT ( INSERT (
EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, WAN_MAC_ADDR, AMI_FRMW_VER_NM, MST_PLC_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, WAN_MAC_ADDR, AMI_FRMW_VER_NM, MST_PLC_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO, PLLT_NO
, MOD_ID, MOD_DATE, REG_ID, REG_DATE, SEND_YN , MOD_ID, MOD_DATE, REG_ID, REG_DATE, SEND_YN
) )
VALUES ( VALUES (
#{EXL_UPD_GRP_NO}, #{MTRL_ID}, #{BX_NO}, #{CNTR_NO}, #{ORD_NO}, #{MTRL_NO}, #{CNTR_CO_BIZR_REG_NO}, #{AMMS_DLVG_HDQR_CL_CD}, #{ORD_YMD}, #{MDL_NM}, #{LDIN_NW_MODM_TP_CL_CD}, #{MNFCO_CL_CD}, #{MODM_UNITC}, #{WAN_MAC_ADDR}, #{AMI_FRMW_VER_NM}, #{MST_PLC_MODL_VER_NM}, #{MNFCT_YM}, #{DLVG_YMD}, #{SYS_TITL_NM}, #{SRL_NO} #{EXL_UPD_GRP_NO}, #{MTRL_ID}, #{BX_NO}, #{CNTR_NO}, #{ORD_NO}, #{MTRL_NO}, #{CNTR_CO_BIZR_REG_NO}, #{AMMS_DLVG_HDQR_CL_CD}, #{ORD_YMD}, #{MDL_NM}, #{LDIN_NW_MODM_TP_CL_CD}, #{MNFCO_CL_CD}, #{MODM_UNITC}, #{WAN_MAC_ADDR}, #{AMI_FRMW_VER_NM}, #{MST_PLC_MODL_VER_NM}, #{MNFCT_YM}, #{DLVG_YMD}, #{SYS_TITL_NM}, #{SRL_NO}, #{PLLT_NO}
, NVL(#{MOD_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{MOD_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), NVL(#{REG_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{REG_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), 'N' , NVL(#{MOD_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{MOD_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), NVL(#{REG_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{REG_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), 'N'
) )
WHEN MATCHED THEN WHEN MATCHED THEN
@ -248,6 +248,7 @@
, DLVG_YMD = #{DLVG_YMD} , DLVG_YMD = #{DLVG_YMD}
, SYS_TITL_NM = #{SYS_TITL_NM} , SYS_TITL_NM = #{SYS_TITL_NM}
, SRL_NO = #{SRL_NO} , SRL_NO = #{SRL_NO}
, PLLT_NO = #{PLLT_NO}
, MOD_ID = NVL(#{MOD_ID}, 'DFXAGENT_USER') , MOD_ID = NVL(#{MOD_ID}, 'DFXAGENT_USER')
, MOD_DATE = DECODE(#{MOD_DATE}, NULL, SYSDATE, TO_DATE(#{MOD_DATE}, 'YYYYMMDDHH24MISS')) , MOD_DATE = DECODE(#{MOD_DATE}, NULL, SYSDATE, TO_DATE(#{MOD_DATE}, 'YYYYMMDDHH24MISS'))
, SEND_YN = 'N' , SEND_YN = 'N'
@ -261,11 +262,11 @@
USING DUAL ON (EXL_UPD_GRP_NO = #{EXL_UPD_GRP_NO} AND AMMS_DLVG_HDQR_CL_CD = #{AMMS_DLVG_HDQR_CL_CD} AND MTRL_ID = #{MTRL_ID}) USING DUAL ON (EXL_UPD_GRP_NO = #{EXL_UPD_GRP_NO} AND AMMS_DLVG_HDQR_CL_CD = #{AMMS_DLVG_HDQR_CL_CD} AND MTRL_ID = #{MTRL_ID})
WHEN NOT MATCHED THEN WHEN NOT MATCHED THEN
INSERT ( INSERT (
EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, MODM_MAC_ADDR, MCU_FRMW_VER_NM, PLC_CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, MTRL_NO, CNTR_CO_BIZR_REG_NO, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, LDIN_NW_MODM_TP_CL_CD, MNFCO_CL_CD, MODM_UNITC, MODM_MAC_ADDR, MCU_FRMW_VER_NM, PLC_CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, SRL_NO, PLLT_NO
, MOD_ID, MOD_DATE, REG_ID, REG_DATE, SEND_YN , MOD_ID, MOD_DATE, REG_ID, REG_DATE, SEND_YN
) )
VALUES ( VALUES (
#{EXL_UPD_GRP_NO}, #{MTRL_ID}, #{BX_NO}, #{CNTR_NO}, #{ORD_NO}, #{MTRL_NO}, #{CNTR_CO_BIZR_REG_NO}, #{AMMS_DLVG_HDQR_CL_CD}, #{ORD_YMD}, #{MDL_NM}, #{LDIN_NW_MODM_TP_CL_CD}, #{MNFCO_CL_CD}, #{MODM_UNITC}, #{MODM_MAC_ADDR}, #{MCU_FRMW_VER_NM}, #{PLC_CMN_MODL_VER_NM}, #{MNFCT_YM}, #{DLVG_YMD}, #{SYS_TITL_NM}, #{SRL_NO} #{EXL_UPD_GRP_NO}, #{MTRL_ID}, #{BX_NO}, #{CNTR_NO}, #{ORD_NO}, #{MTRL_NO}, #{CNTR_CO_BIZR_REG_NO}, #{AMMS_DLVG_HDQR_CL_CD}, #{ORD_YMD}, #{MDL_NM}, #{LDIN_NW_MODM_TP_CL_CD}, #{MNFCO_CL_CD}, #{MODM_UNITC}, #{MODM_MAC_ADDR}, #{MCU_FRMW_VER_NM}, #{PLC_CMN_MODL_VER_NM}, #{MNFCT_YM}, #{DLVG_YMD}, #{SYS_TITL_NM}, #{SRL_NO}, #{PLLT_NO}
, NVL(#{MOD_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{MOD_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), NVL(#{REG_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{REG_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), 'N' , NVL(#{MOD_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{MOD_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), NVL(#{REG_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{REG_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), 'N'
) )
WHEN MATCHED THEN WHEN MATCHED THEN
@ -287,6 +288,7 @@
, DLVG_YMD = #{DLVG_YMD} , DLVG_YMD = #{DLVG_YMD}
, SYS_TITL_NM = #{SYS_TITL_NM} , SYS_TITL_NM = #{SYS_TITL_NM}
, SRL_NO = #{SRL_NO} , SRL_NO = #{SRL_NO}
, PLLT_NO = #{PLLT_NO}
, MOD_ID = NVL(#{MOD_ID}, 'DFXAGENT_USER') , MOD_ID = NVL(#{MOD_ID}, 'DFXAGENT_USER')
, MOD_DATE = DECODE(#{MOD_DATE}, NULL, SYSDATE, TO_DATE(#{MOD_DATE}, 'YYYYMMDDHH24MISS')) , MOD_DATE = DECODE(#{MOD_DATE}, NULL, SYSDATE, TO_DATE(#{MOD_DATE}, 'YYYYMMDDHH24MISS'))
, SEND_YN = 'N' , SEND_YN = 'N'
@ -300,11 +302,11 @@
USING DUAL ON (EXL_UPD_GRP_NO = #{EXL_UPD_GRP_NO} AND AMMS_DLVG_HDQR_CL_CD = #{AMMS_DLVG_HDQR_CL_CD} AND MTRL_ID = #{MTRL_ID}) USING DUAL ON (EXL_UPD_GRP_NO = #{EXL_UPD_GRP_NO} AND AMMS_DLVG_HDQR_CL_CD = #{AMMS_DLVG_HDQR_CL_CD} AND MTRL_ID = #{MTRL_ID})
WHEN NOT MATCHED THEN WHEN NOT MATCHED THEN
INSERT ( INSERT (
EXL_UPD_GRP_NO, MTRL_ID, AMMS_DLVG_HDQR_CL_CD, ANNC_NO, MNFCO_CL_CD, BX_NO, MTRL_NO, MNFCT_YM, LSEFT_YM EXL_UPD_GRP_NO, MTRL_ID, AMMS_DLVG_HDQR_CL_CD, ANNC_NO, MNFCO_CL_CD, BX_NO, MTRL_NO, MNFCT_YM, LSEFT_YM, PLLT_NO
, MOD_ID, MOD_DATE, REG_ID, REG_DATE, SEND_YN , MOD_ID, MOD_DATE, REG_ID, REG_DATE, SEND_YN
) )
VALUES ( VALUES (
#{EXL_UPD_GRP_NO}, #{MTRL_ID}, #{AMMS_DLVG_HDQR_CL_CD}, #{ANNC_NO}, #{MNFCO_CL_CD}, #{BX_NO}, #{MTRL_NO}, #{MNFCT_YM}, #{LSEFT_YM} #{EXL_UPD_GRP_NO}, #{MTRL_ID}, #{AMMS_DLVG_HDQR_CL_CD}, #{ANNC_NO}, #{MNFCO_CL_CD}, #{BX_NO}, #{MTRL_NO}, #{MNFCT_YM}, #{LSEFT_YM}, #{PLLT_NO}
, NVL(#{MOD_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{MOD_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), NVL(#{REG_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{REG_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), 'N' , NVL(#{MOD_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{MOD_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), NVL(#{REG_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{REG_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), 'N'
) )
WHEN MATCHED THEN WHEN MATCHED THEN
@ -315,6 +317,7 @@
, MTRL_NO = #{MTRL_NO} , MTRL_NO = #{MTRL_NO}
, MNFCT_YM = #{MNFCT_YM} , MNFCT_YM = #{MNFCT_YM}
, LSEFT_YM = #{LSEFT_YM} , LSEFT_YM = #{LSEFT_YM}
, PLLT_NO = #{PLLT_NO}
, MOD_ID = NVL(#{MOD_ID}, 'DFXAGENT_USER') , MOD_ID = NVL(#{MOD_ID}, 'DFXAGENT_USER')
, MOD_DATE = DECODE(#{MOD_DATE}, NULL, SYSDATE, TO_DATE(#{MOD_DATE}, 'YYYYMMDDHH24MISS')) , MOD_DATE = DECODE(#{MOD_DATE}, NULL, SYSDATE, TO_DATE(#{MOD_DATE}, 'YYYYMMDDHH24MISS'))
, SEND_YN = 'N' , SEND_YN = 'N'
@ -328,11 +331,11 @@
USING DUAL ON (EXL_UPD_GRP_NO = #{EXL_UPD_GRP_NO} AND AMMS_DLVG_HDQR_CL_CD = #{AMMS_DLVG_HDQR_CL_CD} AND MTRL_ID = #{MTRL_ID}) USING DUAL ON (EXL_UPD_GRP_NO = #{EXL_UPD_GRP_NO} AND AMMS_DLVG_HDQR_CL_CD = #{AMMS_DLVG_HDQR_CL_CD} AND MTRL_ID = #{MTRL_ID})
WHEN NOT MATCHED THEN WHEN NOT MATCHED THEN
INSERT ( INSERT (
EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, LHV_CL_CD, AMMS_CMN_NW_TP_CL_CD, MTRL_NO, CNTR_CO_BIZR_REG_NO, CMCO_CD, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, MNFCO_CL_CD, CRC_NO, MODM_UNITC, CRC_CHRG, MODM_MAC_ADDR, SMGWC_ID, FRMW_VER_NM, CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, TEQP_IDNT_NO, USIM_NO, IPV6_ADDR, SRL_NO EXL_UPD_GRP_NO, MTRL_ID, BX_NO, CNTR_NO, ORD_NO, LHV_CL_CD, AMMS_CMN_NW_TP_CL_CD, MTRL_NO, CNTR_CO_BIZR_REG_NO, CMCO_CD, AMMS_DLVG_HDQR_CL_CD, ORD_YMD, MDL_NM, MNFCO_CL_CD, CRC_NO, MODM_UNITC, CRC_CHRG, MODM_MAC_ADDR, SMGWC_ID, FRMW_VER_NM, CMN_MODL_VER_NM, MNFCT_YM, DLVG_YMD, SYS_TITL_NM, TEQP_IDNT_NO, USIM_NO, IPV6_ADDR, SRL_NO, PLLT_NO
, MOD_ID, MOD_DATE, REG_ID, REG_DATE, SEND_YN , MOD_ID, MOD_DATE, REG_ID, REG_DATE, SEND_YN
) )
VALUES ( VALUES (
#{EXL_UPD_GRP_NO}, #{MTRL_ID}, #{BX_NO}, #{CNTR_NO}, #{ORD_NO}, #{LHV_CL_CD}, #{AMMS_CMN_NW_TP_CL_CD}, #{MTRL_NO}, #{CNTR_CO_BIZR_REG_NO}, #{CMCO_CD}, #{AMMS_DLVG_HDQR_CL_CD}, #{ORD_YMD}, #{MDL_NM}, #{MNFCO_CL_CD}, #{CRC_NO}, #{MODM_UNITC}, #{CRC_CHRG}, #{MODM_MAC_ADDR}, #{SMGWC_ID}, #{FRMW_VER_NM}, #{CMN_MODL_VER_NM}, #{MNFCT_YM}, #{DLVG_YMD}, #{SYS_TITL_NM}, #{TEQP_IDNT_NO}, #{USIM_NO}, #{IPV6_ADDR}, #{SRL_NO} #{EXL_UPD_GRP_NO}, #{MTRL_ID}, #{BX_NO}, #{CNTR_NO}, #{ORD_NO}, #{LHV_CL_CD}, #{AMMS_CMN_NW_TP_CL_CD}, #{MTRL_NO}, #{CNTR_CO_BIZR_REG_NO}, #{CMCO_CD}, #{AMMS_DLVG_HDQR_CL_CD}, #{ORD_YMD}, #{MDL_NM}, #{MNFCO_CL_CD}, #{CRC_NO}, #{MODM_UNITC}, #{CRC_CHRG}, #{MODM_MAC_ADDR}, #{SMGWC_ID}, #{FRMW_VER_NM}, #{CMN_MODL_VER_NM}, #{MNFCT_YM}, #{DLVG_YMD}, #{SYS_TITL_NM}, #{TEQP_IDNT_NO}, #{USIM_NO}, #{IPV6_ADDR}, #{SRL_NO}, #{PLLT_NO}
, NVL(#{MOD_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{MOD_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), NVL(#{REG_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{REG_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), 'N' , NVL(#{MOD_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{MOD_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), NVL(#{REG_ID}, 'DFXAGENT_USER'), TO_DATE(NVL(#{REG_DATE}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')), 'YYYYMMDDHH24MISS'), 'N'
) )
WHEN MATCHED THEN WHEN MATCHED THEN
@ -362,6 +365,7 @@
, USIM_NO = #{USIM_NO} , USIM_NO = #{USIM_NO}
, IPV6_ADDR = #{IPV6_ADDR} , IPV6_ADDR = #{IPV6_ADDR}
, SRL_NO = #{SRL_NO} , SRL_NO = #{SRL_NO}
, PLLT_NO = #{PLLT_NO}
, MOD_ID = NVL(#{MOD_ID}, 'DFXAGENT_USER') , MOD_ID = NVL(#{MOD_ID}, 'DFXAGENT_USER')
, MOD_DATE = DECODE(#{MOD_DATE}, NULL, SYSDATE, TO_DATE(#{MOD_DATE}, 'YYYYMMDDHH24MISS')) , MOD_DATE = DECODE(#{MOD_DATE}, NULL, SYSDATE, TO_DATE(#{MOD_DATE}, 'YYYYMMDDHH24MISS'))
, SEND_YN = 'N' , SEND_YN = 'N'

@ -93,6 +93,7 @@
"receivedMessageStorageRoot": "/home/dfxagent/agent/messages/received", "receivedMessageStorageRoot": "/home/dfxagent/agent/messages/received",
"processedMessageStorageRoot": "/home/dfxagent/agent/messages/processed", "processedMessageStorageRoot": "/home/dfxagent/agent/messages/processed",
"failureMessageStorageRoot": "/home/dfxagent/agent/messages/failure", "failureMessageStorageRoot": "/home/dfxagent/agent/messages/failure",
"manualMessageStorageRoot": "/home/dfxagent/agent/messages/manual",
"threadPoolSize": 300, "threadPoolSize": 300,
"retentionDaysOfProcessedMessage": 60, "retentionDaysOfProcessedMessage": 60,
"dropBoxList": [ "dropBoxList": [

@ -45,7 +45,10 @@
} }
], ],
"statusChecker": { "statusChecker": {
"cron": "0/5 * * * * *" "cron": "0/5 * * * * *",
"consoleHostName": "",
"consoleListenPort": 0,
"consoleSslEnabled": false
}, },
"dataSourceConfig": [ "dataSourceConfig": [
{ {
@ -89,6 +92,7 @@
"receivedMessageStorageRoot": "/ami/dfxagent/agent-ami/messages/received", "receivedMessageStorageRoot": "/ami/dfxagent/agent-ami/messages/received",
"processedMessageStorageRoot": "/ami/dfxagent/agent-ami/messages/processed", "processedMessageStorageRoot": "/ami/dfxagent/agent-ami/messages/processed",
"failureMessageStorageRoot": "/ami/dfxagent/agent-ami/messages/failure", "failureMessageStorageRoot": "/ami/dfxagent/agent-ami/messages/failure",
"manualMessageStorageRoot": "/ami/dfxagent/agent-ami/messages/manual",
"threadPoolSize": 300, "threadPoolSize": 300,
"retentionDaysOfProcessedMessage": 60, "retentionDaysOfProcessedMessage": 60,
"dropBoxList": [ "dropBoxList": [

@ -95,6 +95,7 @@
"receivedMessageStorageRoot": "/home/dfxagent/agent/messages/received", "receivedMessageStorageRoot": "/home/dfxagent/agent/messages/received",
"processedMessageStorageRoot": "/home/dfxagent/agent/messages/processed", "processedMessageStorageRoot": "/home/dfxagent/agent/messages/processed",
"failureMessageStorageRoot": "/home/dfxagent/agent/messages/failure", "failureMessageStorageRoot": "/home/dfxagent/agent/messages/failure",
"manualMessageStorageRoot": "/home/dfxagent/agent/messages/manual",
"threadPoolSize": 300, "threadPoolSize": 300,
"retentionDaysOfProcessedMessage": 60, "retentionDaysOfProcessedMessage": 60,
"dropBoxList": [ "dropBoxList": [

@ -48,7 +48,10 @@
} }
], ],
"statusChecker": { "statusChecker": {
"cron": "0/5 * * * * *" "cron": "0/5 * * * * *",
"consoleHostName": "",
"consoleListenPort": 0,
"consoleSslEnabled": false
}, },
"dataSourceConfig": [ "dataSourceConfig": [
{ {
@ -92,6 +95,7 @@
"receivedMessageStorageRoot": "/ami/dfxagent/agent-mkami/messages/received", "receivedMessageStorageRoot": "/ami/dfxagent/agent-mkami/messages/received",
"processedMessageStorageRoot": "/ami/dfxagent/agent-mkami/messages/processed", "processedMessageStorageRoot": "/ami/dfxagent/agent-mkami/messages/processed",
"failureMessageStorageRoot": "/ami/dfxagent/agent-mkami/messages/failure", "failureMessageStorageRoot": "/ami/dfxagent/agent-mkami/messages/failure",
"manualMessageStorageRoot": "/ami/dfxagent/agent-mkami/messages/manual",
"threadPoolSize": 300, "threadPoolSize": 300,
"retentionDaysOfProcessedMessage": 60, "retentionDaysOfProcessedMessage": 60,
"dropBoxList": [ "dropBoxList": [

@ -57,6 +57,7 @@ public class AgentConfigDto {
private String receivedMessageStorageRoot; private String receivedMessageStorageRoot;
private String processedMessageStorageRoot; private String processedMessageStorageRoot;
private String failureMessageStorageRoot; private String failureMessageStorageRoot;
private String manualMessageStorageRoot;
private List<DropBox> dropBoxList; private List<DropBox> dropBoxList;
private int threadPoolSize; private int threadPoolSize;
private int retentionDaysOfProcessedMessage; private int retentionDaysOfProcessedMessage;

@ -3,10 +3,15 @@ package com.bsmlab.dfx.agent.config.datasource;
import com.bsmlab.dfx.agent.config.AgentConfigDto; import com.bsmlab.dfx.agent.config.AgentConfigDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.dbcp2.BasicDataSource; import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.time.Duration; import java.time.Duration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -63,6 +68,43 @@ public class DynamicDataSourceService {
return this.sqlSessionFactoryMap.get(dataSourceId); return this.sqlSessionFactoryMap.get(dataSourceId);
} }
public SqlSession getSqlSession(String dataSourceId) {
SqlSessionFactory sqlSessionFactory = this.sqlSessionFactoryMap.get(dataSourceId);
SqlSession sqlSession = sqlSessionFactory.openSession();
Connection connection = sqlSession.getConnection();
if(!this.isConnected(connection)) {
sqlSession.close();
sqlSession = sqlSessionFactory.openSession();
log.info("connection is not valid then create new DB connection");
}
return sqlSession;
}
public boolean isConnected(Connection connection) {
boolean connected = false;
try {
if(connection.getMetaData().getDriverName().contains("cubrid") || connection.getMetaData().getDriverName().contains("CUBRID")) {
// SELECT 1 FROM DB_ROOT
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT 1 FROM DB_ROOT");
int result = resultSet.getInt(1);
if(result == 1) {
connected = true;
}
else {
connected = false;
}
}
else {
connected = connection.isValid(1);
}
} catch (SQLException e) {
connected = false;
}
return connected;
}
public DataSourceTransactionManager getTransactionManager(String dataSourceId) { public DataSourceTransactionManager getTransactionManager(String dataSourceId) {
return this.transactionManagerMap.get(dataSourceId); return this.transactionManagerMap.get(dataSourceId);
} }

@ -5,14 +5,12 @@ import com.bsmlab.dfx.agent.config.AgentConfigReader;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.transaction.support.DefaultTransactionDefinition;
import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -27,7 +25,7 @@ public class SqlExecuteService {
public List<Map<String, Object>> select(String dataSourceId, String sqlId, Map<String, Object> parameter) { public List<Map<String, Object>> select(String dataSourceId, String sqlId, Map<String, Object> parameter) {
dynamicRoutingDataSource.setDataSource(dataSourceId); dynamicRoutingDataSource.setDataSource(dataSourceId);
try(SqlSession sqlSession = dynamicDataSourceService.getSqlSessionFactory(dataSourceId).openSession()) { try(SqlSession sqlSession = dynamicDataSourceService.getSqlSession(dataSourceId)) {
return sqlSession.selectList(sqlId, parameter); return sqlSession.selectList(sqlId, parameter);
} }
finally { finally {
@ -37,7 +35,7 @@ public class SqlExecuteService {
public Map<String, Object> insert(String dataSourceId, String sqlId, Map<String, Object> parameter) { public Map<String, Object> insert(String dataSourceId, String sqlId, Map<String, Object> parameter) {
dynamicRoutingDataSource.setDataSource(dataSourceId); dynamicRoutingDataSource.setDataSource(dataSourceId);
try(SqlSession sqlSession = dynamicDataSourceService.getSqlSessionFactory(dataSourceId).openSession()) { try(SqlSession sqlSession = dynamicDataSourceService.getSqlSession(dataSourceId)) {
sqlSession.insert(sqlId, parameter); sqlSession.insert(sqlId, parameter);
return parameter; return parameter;
} }
@ -58,7 +56,7 @@ public class SqlExecuteService {
} }
int maximumRowForTransaction = dataSourceConfig == null ? 1000 : dataSourceConfig.getMaximumRowForTransaction(); int maximumRowForTransaction = dataSourceConfig == null ? 1000 : dataSourceConfig.getMaximumRowForTransaction();
if(parameterList.size() > maximumRowForTransaction) { if(parameterList.size() > maximumRowForTransaction) {
try(SqlSession sqlSession = dynamicDataSourceService.getSqlSessionFactory(dataSourceId).openSession()) { try(SqlSession sqlSession = dynamicDataSourceService.getSqlSession(dataSourceId)) {
for(int i = 0; i < parameterList.size(); i++) { for(int i = 0; i < parameterList.size(); i++) {
Map<String, Object> parameter = parameterList.get(i); Map<String, Object> parameter = parameterList.get(i);
sqlSession.insert(sqlId, parameter); sqlSession.insert(sqlId, parameter);
@ -74,7 +72,7 @@ public class SqlExecuteService {
DataSourceTransactionManager transactionManager = dynamicDataSourceService.getTransactionManager(dataSourceId); DataSourceTransactionManager transactionManager = dynamicDataSourceService.getTransactionManager(dataSourceId);
DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRED); DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus transactionStatus = transactionManager.getTransaction(defaultTransactionDefinition); TransactionStatus transactionStatus = transactionManager.getTransaction(defaultTransactionDefinition);
try(SqlSession sqlSession = dynamicDataSourceService.getSqlSessionFactory(dataSourceId).openSession()) { try(SqlSession sqlSession = dynamicDataSourceService.getSqlSession(dataSourceId)) {
for(int i = 0; i < parameterList.size(); i++) { for(int i = 0; i < parameterList.size(); i++) {
Map<String, Object> parameter = parameterList.get(i); Map<String, Object> parameter = parameterList.get(i);
sqlSession.insert(sqlId, parameter); sqlSession.insert(sqlId, parameter);
@ -91,7 +89,7 @@ public class SqlExecuteService {
public int update(String dataSourceId, String sqlId, Map<String, Object> parameter) { public int update(String dataSourceId, String sqlId, Map<String, Object> parameter) {
dynamicRoutingDataSource.setDataSource(dataSourceId); dynamicRoutingDataSource.setDataSource(dataSourceId);
try(SqlSession sqlSession = dynamicDataSourceService.getSqlSessionFactory(dataSourceId).openSession()) { try(SqlSession sqlSession = dynamicDataSourceService.getSqlSession(dataSourceId)) {
return sqlSession.update(sqlId, parameter); return sqlSession.update(sqlId, parameter);
} }
finally { finally {
@ -101,7 +99,7 @@ public class SqlExecuteService {
public int delete(String dataSourceId, String sqlId, Map<String, Object> parameter) { public int delete(String dataSourceId, String sqlId, Map<String, Object> parameter) {
dynamicRoutingDataSource.setDataSource(dataSourceId); dynamicRoutingDataSource.setDataSource(dataSourceId);
try(SqlSession sqlSession = dynamicDataSourceService.getSqlSessionFactory(dataSourceId).openSession()) { try(SqlSession sqlSession = dynamicDataSourceService.getSqlSession(dataSourceId)) {
return sqlSession.delete(sqlId, parameter); return sqlSession.delete(sqlId, parameter);
} }
finally { finally {
@ -112,8 +110,7 @@ public class SqlExecuteService {
public void execute(String dataSourceId, String sqlId, Map<String, Object> parameter) { public void execute(String dataSourceId, String sqlId, Map<String, Object> parameter) {
dynamicRoutingDataSource.setDataSource(dataSourceId); dynamicRoutingDataSource.setDataSource(dataSourceId);
try { try {
SqlSessionFactory sqlSessionFactory = dynamicDataSourceService.getSqlSessionFactory(dataSourceId); SqlSession sqlSession = dynamicDataSourceService.getSqlSession(dataSourceId);
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.selectOne(sqlId, parameter); sqlSession.selectOne(sqlId, parameter);
} }
finally { finally {

@ -39,6 +39,7 @@ public class DropBoxSchedulerService {
private final SqlExecuteService sqlExecuteService; private final SqlExecuteService sqlExecuteService;
private final DropBoxService dropBoxService; private final DropBoxService dropBoxService;
private Map<Integer, ScheduledFuture<?>> scheduledFutureMap; private Map<Integer, ScheduledFuture<?>> scheduledFutureMap;
private ScheduledFuture<?> manualMessageFileScannerScheduledFuture;
/** /**
* *
* DB + * DB +
@ -179,6 +180,9 @@ public class DropBoxSchedulerService {
for(int i = 0; i < this.agentConfigReader.getAgentConfigDto().getDropBoxConfig().getThreadPoolSize(); i++) { for(int i = 0; i < this.agentConfigReader.getAgentConfigDto().getDropBoxConfig().getThreadPoolSize(); i++) {
this.scheduleTask(i); this.scheduleTask(i);
} }
// 수동 메지시 파일 스캐너
this.startManualMessageFileScanner();
} }
private void scheduleTask(int taskId) { private void scheduleTask(int taskId) {
@ -213,4 +217,15 @@ public class DropBoxSchedulerService {
} }
} }
private void startManualMessageFileScanner() {
Runnable messageFileScannerTask = () -> {
try {
dropBoxService.scanManualMessageFile(100);
} catch (IOException e) {
log.error("Exception on dropbox.scanManualMessageFile", e);
}
};
this.manualMessageFileScannerScheduledFuture = this.dropBoxProcessorThreadPoolTaskScheduler.scheduleWithFixedDelay(messageFileScannerTask, Duration.ofMillis(1000));
}
} }

@ -149,4 +149,52 @@ public class DropBoxService {
} }
log.info("a message file cleared. [{}]", messageFilePath); log.info("a message file cleared. [{}]", messageFilePath);
} }
public void scanManualMessageFile(int maxFileCount) throws IOException {
File manualMessageStorageRootFile = new File(this.agentConfigReader.getAgentConfigDto().getDropBoxConfig().getManualMessageStorageRoot());
List<File> fileList = new ArrayList<>();
this.scanAllFile(manualMessageStorageRootFile, fileList);
int counter = Math.min(fileList.size(), 100);
for(int i = 0; i < counter; i++) {
try (ObjectInputStream objectInputStream = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fileList.get(i))))) {
ReceiveMessageDto receiveMessageDto = (ReceiveMessageDto)objectInputStream.readObject(); objectInputStream.readObject();
this.queue.add(fileList.get(i).getAbsolutePath());
fileList.get(i);
// move receive
} catch (FileNotFoundException e) {
// do nothing
} catch (ClassNotFoundException e) {
// failure 이동
this.moveMessageFile(fileList.get(i).getAbsolutePath(), false);
}
}
}
private void scanAllFile(File root, List<File> foundFileList) {
if(root == null) {
return;
}
File[] fileArray = root.listFiles();
if(fileArray != null) {
for(File file : fileArray) {
if(file.isFile()) {
long firstSize = file.length();
try {
Thread.sleep(10);
}
catch(InterruptedException e) {
// do nothing
}
long secondSize = file.length();
if(firstSize != secondSize) { // 파일 복사 등 저장 중인 파일
continue;
}
foundFileList.add(file);
}
else if(file.isDirectory()) {
this.scanAllFile(file, foundFileList);
}
}
}
}
} }

Loading…
Cancel
Save