Background Image

FORUM

조회 수 281 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

안녕하세요 큐브리드를 사용해서 개발중인데요.


트리거 이벤트 시점 관련해서 질문이 있습니다


생성하려는 트리거는 


A 라는 DB의 TEST테이블의 업데이트가 발생이 되면

B 라는 외부DB의 TEST테이블(동일스키마)을 동기화 시키려는 트리거입니다.


트리거의 실행부분은 javaSP로 구현하였구요. 제가 작성한 SP만 CALL하면 잘 동작하는데 트리거에서 돌릴 때 트랜잭션에 관한 문제가 발생합니다.


javaSP로직은 해당 테이블의 pk를 던져주면 

pk에 해당하는 레코드를 A DB에서 select하여 B db에 update치는 로직입니다.



CREATE TRIGGER updateTrigger

DEFERED UPDATE ON TEST

EXECUTE DEFERED javaSP


이런식으로 트리거를 생성 이후 TEST테이블에 UPDATE문을 

1번 발생시키면 B DB에 레코드가 업데이트 되지않고

2번 발생시켜야 B DB에 업데이트가 됩니다.



아마 javaSP에서 A DB에 업데이트 된 레코드를 SELECT하는 시점에서, 트리거에 걸려 COMMIT 되지 않아 똑같은 값을 update하는 것으로 보여지는데요


update이벤트가 완전히 완료 된 시점에서 트리거의 실행부를 실행시킬 수 있는 이벤트 시점은 없나요??


(참고로 AFTER,BEFORE 다 테스트해봤습니다. 결과는 같습니다, 

또한 insert 동기화 트리거는 위와 같은 맥략의 로직인데, DEFERED 키워드를 주었을때 바로 해결되었었습니다. 근데 update는 안되네요 ㅠ 무슨차이인지...)

  • ?
    안녕하세요.

    Trigger에서 INSERT, UPDATE에 대해 모두 이벤트 시점을 DEFERRED로 설정하시면 됩니다.
    이벤트 시점을 DEFERRED로 만들었을 때 A라는 DB에서 COMMIT 되는 데이터만 B라는 DB에 반영됩니다.

    그리고 Java SP에서는 A라는 DB에 Connection을 가져올 때 "jdbc:default:connection:"으로 가져와야 합니다
    A라는 DB에서 올리는 Java SP는 "jdbc:default:connection:"으로 A라는 DB에 연결할 수 있습니다.

    * 변경 전 : Connection connection = DriverManager.getConnection("jdbc:cubrid:192.168.1.7:40730:demodb:::", "dba", "");
    * 변경 후 : Connection connection = DriverManager.getConnection("jdbc:default:connection:");

    Java SP에서 B라는 DB에 붙어서 데이터 동기화 하실 때문 변경 전 방식으로 Connection을 가져오면 됩니다.

    테스트 했던 코드는 첨부하겠습니다.

    그리고 A, B DB의 데이터를 동기화 할 때 PK 값으로 다시 SELECT 하는 이유가 있나요?
    되도록이면 상관명(correlation name) - new, obj, old 등을 사용하는 것을 권장드립니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 51
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
3434 큐브리드 매니저 엑셀저장 기능을 질의결과를 보지 않고 저장하는 방법은 없나요? 1 봉보로봉봉 2020.08.05 232
3433 큐브리드 매니저 업데이트시 오류 발생 6 Hunyho 2017.10.10 238
3432 큐브리드 매니저 어떤 버전을 사용해야 하는지요 ^^; 3 어익후 2011.01.13 11439
3431 큐브리드 매니저 실행이 오류 1 file 청주시청 2023.05.18 101
3430 큐브리드 매니저 실행시 오류 3 file 개발자1111 2018.09.18 275
3429 큐브리드 매니저 실행시 에러 1 file 아프리카 2014.02.03 10693
3428 큐브리드 매니저 실행시 workspace 설정? 1 라면 2016.05.18 8252
3427 큐브리드 매니저 실행 후 DB접속 시 1 안녕하세요1 2016.04.15 10417
3426 큐브리드 매니저 실행 시 무반응 3 코버스 2015.04.15 10124
3425 큐브리드 매니저 속도 문의 1 연동테스트용 2024.04.22 15
3424 큐브리드 매니저 서비스 잦은 종료 1 라면 2016.03.15 8623
3423 큐브리드 매니저 서버 연결이 종료되었다고 나옵니다. 1 file b13 2013.04.09 8371
3422 큐브리드 매니저 사용시 복구가 안되요 1 file 개발자1 2021.11.05 206
3421 큐브리드 매니저 사용법 문의 2 유진욱 2018.10.24 552
3420 큐브리드 매니저 사용공간 보기 오류 1 종이 2013.06.17 6611
3419 큐브리드 매니저 사용 중 오류 문의입니다. 1 file HJOW 2015.05.31 4619
3418 큐브리드 매니저 비밀번호 오류메시지 2 file 종이 2012.08.24 6075
3417 큐브리드 매니저 버그 발견 1 file 유니콘 2011.02.15 7366
3416 큐브리드 매니저 문의입니다 1 겜기능되거든 2010.05.27 9798
3415 큐브리드 매니저 마이그레이션 플러그인 오류 1 file 태태리 2016.10.01 9274
Board Pagination Prev 1 ... 24 25 26 27 28 29 30 31 32 33 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales