아이바티스 에서 xml 에 프로시져를 구현해보았다. 

DECLARE

V_CNT NUMBER;

V_KEY_SEQ NUMBER;

BEGIN

SELECT COUNT(*)

 INTO V_CNT

 FROM PUR_EPUR_KEY_MGT

WHERE KEY = #KEY#||TO_CHAR(SYSDATE,'YYYY');

IF V_CNT = 0 THEN

V_KEY_SEQ := 0;

ELSE

SELECT TO_NUMBER(MAX(KEY_SEQ)+1)

 INTO V_KEY_SEQ

 FROM PUR_EPUR_KEY_MGT

WHERE KEY = #KEY#||TO_CHAR(SYSDATE,'YYYY');

END IF;

INSERT INTO PUR_EPUR_KEY_MGT(

CONVERSATION_ID

,KEY

,KEY_SEQ

,INS_ID

,INS_DT

,UPT_ID

,UPT_DT

)VALUES(

#KEY#||TO_CHAR(SYSDATE,'YYYY')||LPAD(V_KEY_SEQ,8,'0')||'013'

,#KEY#||TO_CHAR(SYSDATE,'YYYY')

,V_KEY_SEQ

,#INS_ID# 

,SYSDATE

,#UPT_ID# 

,SYSDATE 

);

commit;

END;



로 구했는데 . 첫번째 프로세서 실행시 에는 문제가 없었으나 두번째에서 부터 문제가 발생 했다. 

확인해 보니 프로세서상 프로시져를 사용한후 오류가 생겨 트랜잭션이 롤백을 시도 햇는데 procedure 에서 실행한 쿼리 문이 제대로 롤백이 되지 않아

일어 나는 현상 이었다.


따라서 END; 위에 commit 를 추가 하여 문제를 해결했다.

프로세서 완료 후에는 commit 문장을 삭제함 .

 아이바티스및 프로세서의 트랜잭션을 전적으로 의지 하면 안된다는 교휵을 배웠다... 



Posted by 사라링
BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :