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 등을 사용하는 것을 권장드립니다.

  1. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4443
    read more
  2. FK 인덱스 삭제 문의 입니다.

    Date2019.09.18 By일휴 Views1295
    Read More
  3. cubrid manager heap size 설정방법 문의

    Date2019.09.19 Bylkc0626 Views234
    Read More
  4. 윈도우10에서 cubrid명령어 입력시 cubrid.exe 실행

    Date2019.09.23 By킁미 Views287
    Read More
  5. a 디비에서 b디비의 테이블에 접근(crud)할 수 있나요?

    Date2019.09.24 Bycasual1492 Views130
    Read More
  6. 정수 변환

    Date2019.10.05 By현수 Views798
    Read More
  7. cubrid jdbc 접근 문제 질문드립니다.

    Date2019.10.07 By디벨로퍼 Views476
    Read More
  8. 데이터베이스 접근 계정 dba 패스워드 분실로 인한 초기화 방법 알고싶습니다.

    Date2019.10.08 Bypjs Views406
    Read More
  9. macOS Catalina 업데이트 후 큐브리드 매니저 실행안되는 문제

    Date2019.10.11 Bynorman Views886
    Read More
  10. 큐브리드 데이터 타입 문의드립니다.

    Date2019.10.14 By피닉스맨 Views170
    Read More
  11. 한글깨짐현상 문의드립니다.

    Date2019.10.22 By슬픈공돌이 Views1493
    Read More
  12. unload 실행시 Empty component list in class

    Date2019.10.22 By휴식 Views391
    Read More
  13. CUBRID 구성 문의

    Date2019.10.24 Bypassik89 Views248
    Read More
  14. my SQL -> CUBRID로 마이그레이션 작업 중 질문이 있습니다.

    Date2019.10.25 By클라우비 Views147
    Read More
  15. 안녕하세요 javaSp를 사용한 프로시저 등록 관련하여 질문드립니다.

    Date2019.10.28 Bycubridtest Views181
    Read More
  16. An IOException was caught during reading the inputstream. 오류 조치방법 좀 알려주세요.

    Date2019.10.29 Byldev27 Views314
    Read More
  17. Trigger 이벤트 시점에 대해 질문드립니다.

    Date2019.10.29 Bycubridtest Views281
    Read More
  18. Spring JPA cubrid 연결 오류 질문입니다

    Date2019.10.31 Bydaniel Views1615
    Read More
  19. [답변에 대한 답글입니다.] Trigger 이벤트 시점에 대해 질문드립니다.

    Date2019.10.31 Bycubridtest Views566
    Read More
  20. drop table 시 clob 파일 질문입니다.

    Date2019.11.04 By진짜마드리드 Views199
    Read More
  21. 큐브리드 매니저에서 로컬서버 설정후 데이터베이스 생성 할때 창안뜨는 경우

    Date2019.11.04 By나라디 Views238
    Read More
Board Pagination Prev 1 ... 148 149 150 151 152 153 154 155 156 157 ... 200 Next
/ 200

Contact Cubrid

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