2012-09-06 3 views
1

JMS 세션을 트랜잭션에 참여시키려는 경우 session 매개 변수가 true 인 JMS 세션을 만듭니다.JMS - 분산 트랜잭션

그러나 JMS 트랜잭션에 참여하는 세션은 로컬 트랜잭션 또는 글로벌 트랜잭션입니까?

즉, JMS가 로컬 트랜잭션 또는 글로벌 트랜잭션에 참여하도록 제어 할 수 있습니까? 아니면 응용 프로그램 컨테이너가 결정할 것입니까?

답변

1

사용하는 연결 팩토리에 따라 다릅니다.

JMS 사양은 세 가지 인터페이스가 포함 된 두 가지 유형의 연결 팩토리를 지정합니다.

XA 연결 팩토리 XAConnectionFactory, XAQueueConnectionFactory 및 XATopicConnectionFactory

ConnectionFactory에, QueueConnectionFactory와 상기 비 XA 연결 팩토리

TopicConnectionFactory와

. XA * *을 사용하는 경우 JMS 세션이 전역 트랜잭션에 참여합니다. 물론,이 부분은 코드에서 추상화됩니다. 일반적으로 공급자 관련 인터페이스를 통해 연결 팩토리를 구성한 다음 JNDI를 통해 연결 팩토리를 조회하기 때문입니다.

WebLogic의 JMS에 대한 글로벌 트랜잭션에 대해 설명하는 link입니다.

관련 문제