2011-05-09 3 views
2

나는 최대 절전 모드을 통합하고 트랜잭션을 관리하기위한 JTA를 사용하고 싶습니다. 제 경우 JBoss도 트랜잭션 처리를 App 서버로 위임하고 싶습니다. 나는 콩 봄의 "의 transactionManager"구성에 대한 쿼리를 가지고 :봄 + 최대 절전 모드 + JTA - HibernateTransactionManager를 나 JtaTransactionManager를

1) 우리는 HibernateTransactionManager를 사용하여 속성 hibernate.transaction.factory_class에게하는 hibernate.transaction.manager_lookup_class를 설정할 수 hibernate.properties 파일에? 그렇지 않은 경우 이유는 무엇입니까?

2) 아니면 JTATransactionManager을 사용해야합니까? 옵션에서

(2), 우리는 여전히 hibernate.properties에서 ("hibernate.transaction.factory_class를", "하는 hibernate.transaction.manager_lookup_class")의 속성을 설정해야합니까?

감사합니다.

+0

실행중인 응용 프로그램 서버는 무엇입니까? JTA와 관련하여 트랜잭션 처리를 응용 프로그램 서버에 위임 하시겠습니까? on 1), 어떤 factory와 lookup 클래스를 지정하고 싶습니까? – abalogh

+0

JBoss. 예, 거래 처리를 App 서버에 위임하고 싶습니다. 내 질문은 - 우리는 HibernateTransactionManager를 사용하고 hibernate.properties에서 적절한 factory와 lookup 클래스를 설정함으로써 JTATransaction 관리를 할 수 있습니까? –

답변

4

appserver에 위임하려면 JTATransactionManager를 제 지식으로 사용해야하며 HibernateTransactionManager는 JTA 트랜잭션 관리자가 아닙니다.

단일 Hibernate SessionFactory에 대한 PlatformTransactionManager 구현입니다. 지정된 팩토리의 Hibernate Session를 thread에 바인드 해, 팩토리마다 1 개의 thread에 바인드 된 세션을 잠재적으로 허가합니다. SessionFactoryUtils와 HibernateTemplate은 쓰레드 - 바운드 세션을 인식하고 그러한 트랜잭션에 자동으로 참여한다. SessionFactory.getCurrentSession()을 사용하거나 이들 중 하나를 사용하는 것은이 트랜잭션 처리 메커니즘을 지원해야하는 Hibernate 액세스 코드에 필요하다.