2012-12-03 2 views
1

안녕하세요 여러분,내가 다른 데이터베이스 (로)에서 CRUD 작업을 수행 할 필요가 동일한 트랜잭션에서 SQL과 오라클을 말처럼 내가 요구 사항이 동일한 트랜잭션에서 다중 데이터베이스에

를 삽입합니다. 그것을 성취 할 수있는 방법이 있습니까?

(1) 하나의 SessionFactory를 사용하여 이것을 달성 할 수 있습니까? 그렇다면 어떻게됩니까?

(2) 두 가지 다른 Sessionfactory를 사용하여 수행 할 수 있습니까?

내가 가진 조건은 삽입 할 쿼리가 동시에 두 데이터베이스에 모두 삽입되어야하는 경우입니다.

내 질문에 iam이 매우 명확하길 바랍니다. 답장을 기다리는 중입니다.

+1

http://stackoverflow.com/questions/10212274/two-phase-commit-2pc-configuration-with-atomikos Google JTA를 원할 수도 있습니다. –

답변

0

글로벌 트랜잭션을 사용할 수 있습니다. 이것은 Java Transaction API에 지정되어 있습니다. 많은 응용 프로그램 서버가 세션 팩토리에서 차례대로 사용할 수있는 독점적 인 트랜잭션 관리자를 사용하여이를 지원합니다. 기본 아이디어는 데이터베이스에서 지원해야하는 2 단계 커밋 프로토콜을 사용하는 것입니다 (준비 명령을 이해해야합니다). 이러한 드라이버는 일반적으로 XA 호환성을 찾고 있습니다. 예 : Oracle의 웹 로직 앱 서버 XA 호환 오라클 드라이버와 함께 제공됩니다. 어쨌든 다른 앱 서버에서는 다를 수 있습니다.

JTA는 XOpen XA에 근거하여 큰 그림을 읽어야합니다.

G-Man은 앱 서버가 적절한 TA 관리자를 제공하지 않거나 앱 서버를 사용하고 싶지 않은 경우 Atomikos 구성에 좋은 링크를 제공했습니다.