2014-06-05 2 views
1

현재 을 수신하고 EMS topic을 수신하고 메시지를 처리하여 지속합니다. 그러나, 나는이 모든 것을 하나의 거래로하고 싶다. Transaction Manager에 등록해야하는 두 가지 글로벌 리소스가 있기 때문에이 메시지가 XA을 필요로한다는 것을 알고 있습니다. 이것은 봄이 제공하는 JTA을 통해 이루어질 수 있습니다. 그러나 내 응용 프로그램은 독립형이므로 Bitronix 또는 JOTM과 같은 타사 JTA standalone 구현을 포함시켜야합니까? 두 가지 모두 스프링 리소스이므로 기본 값은 JTA이므로이 점을 고려해야합니다.독립 실행 형 JMS + JDBC 단일 트랜잭션

답변

1

예 XA를 지원하는 타사 TransactionManager 구현을 포함해야합니다.

대부분의 응용 프로그램 서버. JBoss는 자신이 선택한 XA TransactionManager를 번들로 제공합니다. 이것은 Tomcat이나 독립 실행 형 응용 프로그램과 같은 응용 프로그램 서버를 선택하는 이유 중 하나입니다. XA 트랜잭션과 같은 것들의 구성은 기본적으로 수행됩니다.

가끔 ApplicationServer가 너무 무거울 수도 있지만 (문제가 적어지고 있다고 생각할 수도 있음) 또는 사용할 수없는 경우가 있습니다. 이 시나리오에서는 XA를 사용하려는 경우 TransactionManager 구현을 제공하는 것은 사용자의 책임입니다.

JBossTS, Atomikos Transaction Essentials 또는 Bitronix JTA와 같은 구현에서 선택할 수 있습니다.

스프링에는 JTATransactionManager 구현이 포함됩니다. 이렇게하면 미리 구성된 위치를 사용하여 Application Server에서 실행중인 경우 선택한 XA 구현을 검색하거나 독립 실행 형 환경에있는 경우 직접 구성해야합니다.

  1. http://spring.io/blog/2011/08/15/configuring-spring-and-jta-without-full-java-ee/
  2. http://www.javaworld.com/article/2077714/java-web-development/xa-transactions-using-spring.html
:

봄을 가진 XA TransactionManager를 구성에 대한 몇 가지 훌륭한 자원이있다

관련 문제