문제

예를 호출하는 두 개의 웹 서비스에서 방법을 세션 bean,어떤 예외가 발생하는 경우 사이 통화하는 두 가지 방법이 있나요?하지 않는 경우에 호출하는 웹 서비스에 트랜잭션이 롤백 및 해 done.그러나,웹사 서비스하지 않 rollback.물론,심지어 하나의 웹 서비스에 문제가 있습니다.이것은 일반적인 질문에 흥미가 있는 솔루션을 EJB 세션 콩입니다.

는 쉬운 주문을 받아서 만들어진 대답은 다음과 같습니다 추가 특별한"rollback 방법"웹 서비스에 대한 각각의"실제 기능이"방법입니다.내가 무엇이 요구하는 표준화된 방법으로 그렇게했다.

도움이 되었습니까?

해결책

숫자의 기술이 진화하고 있지만,문제는 여전히 충분히 최첨단하는 표준화 과정하지 않은 아직 우리에게 제공하는 완전히 휴대용 솔루션입니다.

옵션 중 하나 만들 수 있습니다 웹 서비스에 트랜잭션을 알고 있습니다.물론 이것이 있다고 가정하지만,쓰기 트랜잭션을 알고 있에 대한 프록시 non-트랜잭션 서비스도 옵션에서 몇 가지 경우입니다.

WS-에 WS-BA 프로토콜 주요한 표준에 대한 트랜잭션이 웹 서비스입니다.불행히도 그들은 프로토콜을 지정하지 언어 바인딩.즉,아무 표준 API 프로그래밍 언어 수준에서.Java 가장 가까운 것은 JSR-156,하지만 그것은 아직 준비되지 않았습니다.

다음 문제가:하는 방법 넥타이 EJB(i.eJTA/XA)트랜잭션을 WS 하나입니다.이후 모델에 의해 사용되는 WS-에 XA 프로토콜은 밀접하게 관련이 있습에 의해 달성 프로토콜이다.여러 응용 프로그램을 제공 무언가를 혼자서 이러한 라인입니다.JBoss 제시들에서 많조 http://anonsvn.jboss.org/repos/labs/labs/jbosstm/workspace/jhalliday/txbridge/BOF-4182.odp

프로토콜 브리징 기법도 사용할 수 있는 다른 방법으로 주위를 할 수 있도록,EJB 사용하는 예:XA 데이터베이스 백엔드,노출되는 트랜잭션으로 웹 서비스입니다.

그러나,잠금에서 사용되는 모델은 두 가지 단계 commit 거래는 정말로만 적합한 짧은 트랜잭션에서 동일한 도메인의 통제입니다.하는 경우 서비스에서 실행되는 동일한 회사 데이터 센터 당신은 아마이다.에 대한 넓게 분포,그것은 지리적 또는 행정 당신은 아마에서 보고 싶 WS-BA,웹 서비스 거래 프로토콜을 위해 특별히 설계된 사용.

WS-BA 사용하여 보정 모델을 기반으로는 힘들어 프로그램입니다.그것은 본질적으로 기준에 기술을 언급합니다:의 효과 서비스를 취소할 방법에 의해 호출하면 보상 방법이다.이 까다로울 수 있지만 그 JBoss 인턴았다 오히려 좋은 주석할 수 있는 프레임워크를 정의하는 보상 방법이 최소한의 노력으로 그 중심 자동으로 합니다.그것은 표준화되지 않지만,체크 아웃 가치가있는 경우에 당신은 이 방법을 선택: http://www.jboss.org/jbosstm/baframework

다른 팁

Microsoft, BEA Systems 및 IBM에서 개발 한 웹 서비스 조정 (WS-C) 및 WS-T (Web Services Transaction) 사양은 내가 알고있는 경우에 사용됩니다. 당신은 독서에서 시작할 수 있습니다 웹 서비스 거래 그리고 웹 서비스 트랜잭션 프로토콜의 비교 IBM이 제공 한 기사를 명확하게하기 위해 기사.

실제로, 당신은 일반적으로 사용자 정의 롤백 방법뿐만 아니라 사용자 정의 커밋 방법도 필요합니다. 그렇지 않으면 WS-BA 표준에서 발견 된 것과 같은 문제가 발생합니다.

그냥 체크 아웃하십시오 http://www.atomikos.com/publications/trycancelconfirm 자세한 기사. 언급 된 기능은 사용할 수 있습니다 Atomikos Extremetransactions...이 제품은 또한 고전적인 '산'스타일의 웹 서비스 거래를 지원합니다.

HTH

남자

면책 조항 : 나는 Atomikos에서 일합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top