2010-07-12 4 views
0

자바 서비스로 작업하기 시작했습니다. 잠시 동안 googleing을 해왔지만 트랜잭션을 처리 할 필요가있을 때 실마리가 없습니다. 클라이언트가 3 개의 서비스를 사용하고 세 번째 서비스가 중단되는 경우 어떻게 이전의 2 개의 서비스를 롤백 할 수 있습니까? 모든 링크 또는 설명이 도움이 될 수 있습니다.java SOA 애플리케이션에서 트랜잭션 관리 시작 위치

+0

원격 처리에 서비스 기술을 사용 하시겠습니까? 아니면 SOA 기반의 응용 프로그램을 작성하고 싶습니까? SOA는 SOAP와 같은 서비스 기술을 사용하여 원격 호출을 수행하는 것 이상입니다. SOA에서 각 서비스는 계약에 의해 정의되고 호출의 효과를 '실행 취소'할 수 있어야하는 경우 서비스 정의에 해당 가능성을 포함시켜야합니다. – Kwebble

답변

0

이 경우에는 Java Transaction API과 정확히 일치하는 분산 변환이 필요합니다. Spring 또는 Java EE's EJB container과 같은 응용 프로그램 서버는 JTA를 지원하며 주석 또는 선언적 구성을 통해 사용하기가 매우 쉽습니다.

+0

마지막으로 JTA 클래스 인 XAResource, Xid 및 XConnection =을 사용하여 수정했습니다. – Eduardo

1

클라이언트가 여러 서비스 메소드를 트랜잭션 방식으로 호출해야하는 경우 트랜잭션 방식으로 3 가지 작업을 실행하는 facade class을 만드는 것이 좋습니다.

작업에 사용자 입력이 필요한 경우 -하지 마십시오. 이러한 장기 실행 트랜잭션은 성능 문제 및 교착 상태의 주요 후보입니다.

관련 문제