게시판을 이용해 주셔서 감사합니다.
다음양식에 맞게 입력해주세요.
* 고객시스템명 : 르노캐피탈 리스시스템
* TOInB 버전 : 4.0.3.0.5
* 서버 Platform : HP UNIX 11
* 문의 유형(질문/요청/참조) : 질문
* 내용 : Toinb 서비스 TP_FAIL 시 ROLLBACK 안됨
안녕하세요. 삼성SDS 정인양입니다.
Toinb 서비스 중 CommonTransection 에서 SQL을 통한 INSERT 후
event 에서 Oracle 프로시져 호출을 한 뒤에 TBL_ERROR_CODE 를 받아서 문제가 있으면
return(TB_FAIL); 처리를 하는데 TB_SE 로그상에는 ROLLBACK 이라고 나오는데
SQL에서 INSERT 한 자료가 사라지지 않고 그래도 남습니다.
보통 트랜잭션에서 중간에 ROLLBACK 이 되면 앞에 수행했던 SQL 들도 다 ROLLBACK 이 되어야 하는데
에러가 나는 프로시져 전에 수행된 SQL 들은 다 COMMIT 처리 되네요.
원인 및 조치 방법을 알려주세요.
[JSP]
//서비스 호출 부분
var tr_keyvalue = "rua011t_t01("
+ "I:input5=tbds_del,"
+ "I:input1=tbds_act,"
+ "I:input2=tbds_actAmtW,"
+ "I:input3=tbds_silCar,"
+ "I:input4=tbds_silCarOption"
+ ")";
tbtr_act.Action = LeaseAction;
tbtr_act.KeyName = KeyName;
tbtr_act.KeyValue = tr_keyvalue;
tbtr_act.Post();
[Toinb]
//프로시져 호출 후 Exception 처리 (rua011t_t01.event)
TBL_Prn (tb_stderr, "CREDATA 생성 LSREC_AHCE0003_SP1 START");
BEGIN-SQL
BEGIN
LSREC_AHCE0003_SP1(:W1_KY_NO,
:W1_SIL_COUNT,
:W1_SIL_DATE,
:W1_JP_NO,
:W1_ENTRY_IDNO,
:V_IO_YN);
END;
END-SQL;
TBL_Prn (tb_stderr, "CREDATA 생성 LSREC_AHCE0003_SP1 END TBL_ERROR_CODE = [%d], [%s]", TBL_ERR_CODE, TBL_ERR_MSG);
if (TBL_ERROR_CODE < 0) {
strcpy(TBL_ERROR_MSG,TBL_ERR_MSG);
strcat(TBL_ERROR_MSG,"CRE DATE 생성 ERROR...");
return (TB_FAIL);
}
[TB_SE.log]
[<26415> 10/06/25 10:28:25] GetReq ret[1], svc_name[rua011t_t01],control[I:input5=tbds_del,I:input1=tbds_act,I:input2=tbds_actAmtW,I:input3=tbds_silCar,I:input4=tbds_silCarOption], protocol[2110]
[10/06/25-10:28:25 rua011t_t01(6)] 실행스케쥴 생성 W1_KY_NO =[A1006009142].
[10/06/25-10:28:25 rua011t_t01(7)] 실행스케쥴 생성 W1_SIL_COUNT=[001].
[10/06/25-10:28:25 rua011t_t01(8)] 실행스케쥴 생성 W1_JOB_KUBUN=[I].
[10/06/25-10:28:25 rua011t_t01(9)] END W5_DELETE_IDNO = []
[10/06/25-10:28:25 rua011t_t01(11)] W1_JOB_KUBUN: I 등록
[10/06/25-10:28:25 rua011t_t01(14)] 스케줄 생성 LSC_SP110 START
[10/06/25-10:28:26 rua011t_t01(52)] 스케줄 생성 LSC_SP110 END TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(73)] 회계분개 HEADER 생성 LSC_SP710 START
[10/06/25-10:28:26 rua011t_t01(113)] 회계분개 HEADER 생성 LSC_SP710 END TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(116)] 회계표준조건 조회 START
[10/06/25-10:28:26 rua011t_t01(197)] 회계표준조건 조회 END TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(201)] 회계분개 DETAIL(실행자산)생성 LSC_SP711 START
[10/06/25-10:28:26 rua011t_t01(259)] 회계분개 DETAIL(실행자산)생성 LSC_SP711 END TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(330)] 선급이자기간 조회 TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(333)] 회계분개 DETAIL(선급자산)생성 LSC_SP711 START
[10/06/25-10:28:26 rua011t_t01(392)] 회계분개 DETAIL(선급자산)생성 LSC_SP711 END TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(523)] 회계분개 마무리 생성 LSC_SP730 START
[10/06/25-10:28:26 rua011t_t01(557)] 회계분개 마무리 생성 LSC_SP730 END TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(561)] SLI_INVOICE_M 부서코드 UPDATE W1_COM_KUBUN = [4501]
[10/06/25-10:28:26 rua011t_t01(562)] SLI_INVOICE_M 부서코드 UPDATE W1_CON_COM_KUBUN = [4501]
[10/06/25-10:28:26 rua011t_t01(594)] SLI_INVOICE_M UPDATE TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(597)] LSCOC0300 UPDATE W1_SIL_COUNT = [001]
[10/06/25-10:28:26 rua011t_t01(598)] LSCOC0300 UPDATE W1_ENTRY_IDNO = [ik000021]
[10/06/25-10:28:26 rua011t_t01(633)] LSCOC0300 UPDATE TBL_ERROR_CODE = [0]
[10/06/25-10:28:26 rua011t_t01(636)] CREDATA 생성 LSREC_AHCE0003_SP1 START
[10/06/25-10:28:37 rua011t_t01(670)] CREDATA 생성 LSREC_AHCE0003_SP1 END TBL_ERROR_CODE = [-20001], [ORA-20001: 회계이벤트 생성 ERROR. 다시 작업해 주세요
ORA-06512: at "LEASE_DEV.LSREC_AHCE0003_SP1", line 173
ORA-06512: at line 3
]
[<26415> 10/06/25 10:28:37] GetReq ret[1], svc_name[],control[(NULL)], protocol[2230]
[<26415> 10/06/25 10:28:37] ROLLBACK
[<26415> 10/06/25 10:28:37] COMMUNICATE FINISH
Toinb 소스 (scena, info, event) 파일은 첨부로 보내드리며, 확인하는데 더 필요한 자료가 있으면
말씀해 주세요.
답변 기다리겠습니다.
e-mail : inyang@samsung.com, inyang.jeong@renaultsamsungm.com
Office : 02-2021-5674