create or replace FUNCTION Route_Tran
(
vRouterSeq IN router.seq%TYPE,
vSeq IN tran.seq%TYPE,
vSender IN tran.sender%TYPE,
vReceiver IN tran.receiver%TYPE,
vMsg IN tran.msg%TYPE,
vUrl IN tran.url%TYPE,
vPriority in users.priority%TYPE
)
RETURN Integer
IS
vRet INTEGER;
BEGIN
-- SKT SMS
IF vRouterSeq = 10 THEN
INSERT INTO TELINK_SMS
(CMP_MSG_ID, WRT_DTTM, SND_DTTM, SND_PHN_ID, RCV_PHN_ID, CALLBACK, SND_MSG, SMS_ST, RSLT_VAL)
VALUES(LPAD(vSeq,20,'0'), TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'), TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'', vReceiver, vSender, vMsg, '0', 99);
-- KT SMS
ELSIF vRouterSeq = 20 THEN
INSERT INTO SDK_SMS_SEND
(MSG_ID, USER_ID, SMS_MSG, CALLBACK_URL, NOW_DATE, SEND_DATE, CALLBACK, DEST_COUNT, DEST_INFO)
VALUES(vSeq, 'tongil0234', vMsg, vUrl, to_char(sysdate,'yyyymmddhh24miss'), to_char(sysdate,'yyyymmddhh24miss'), vSender, 1, '^'||vReceiver);
-- 미설정
ELSE
vRet := 0;
END IF;
RETURN 1;
END;
예약테이블 => 전송테이블 => 각통신사 SMS테이블의 순서로 순차적으로 입력되는 구조입니다.
위 함수는 전송 테이블에서 각 통신사 SMS 테이블(SK와 KT)로 인서트 되는 부분 인데요.
에이전트가 두개 입니다. ( SK 텔링크와 , KT 크로샷) 헌데 두개임에도 불구하고,
SK 테이블로 인서트 되는 동안 KT 테이블로 인서트 되지 않고 멈추어 버립니다.
SK 테이블로 인서트 되는 중 약간의 공백(ex> 15분예약 16분예약 20분예약(4분공백)) 일때 KT 테이블로 인서트가 시작이 되고 SK의 예약시간이 다가오면 다시 KT가 멈추고 SK가 먼저 발송이 되고 난 후에야 KT가 발송이 되는데요.
제가 찾은 부분은 저부분밖에 못찾겠는데.. 혹시 해당 함수부분 이상 있는지 알 수 있을까요?