2013-07-16 2 views
1

예 : 웹 컨텍스트에서 EJB 메서드를 호출하면. EJB는 Local Bean과 함께 CMT (Container Managed Transaction)를 가지며 그 메소드에는 required_new transactional 속성이 있습니다. EJB 메소드가 시스템 예외를 throw하면 클라이언트는 무엇을 얻게됩니까? 즉, 트랜잭션이 롤백됩니다. 따라서 고객이 EJBTransactionRolledBackException 또는 간단히 EJBException을 얻나요?CMT에서 Requires_New 트랜잭션 속성을 설정하고 시스템 예외를 throw하면 클라이언트가 어떤 예외를 가져 오나요?

미리 감사드립니다.

답변

2

EJB 3.1 사양, 14.3.1 "세션 Bean의 비즈니스 인터페이스 메소드 및 인터페이스 없음"의 표 15에서는 RequiresNew 메소드에 의해 Throw 된 비 AppException으로 인해 EJBException을 수신하게됩니다. EJBTransactionException은 EJB 메서드가 호출자의 트랜잭션을 사용하여 실행되고 EJB 컨테이너가 시스템 예외로 인해 트랜잭션을 롤백으로 표시 한 경우에 throw됩니다.