2011-09-13 2 views
1

트랜잭션에서 메시지를 수신 한 MDB가 있고 해당 EJB의 this.sessionContext.setRollbackOnly() 중 하나를 호출하면 여러 EJB 호출을 수행하면 JMS 메시지의 재 배달이 트리거됩니까?SessionContext RollBackOnly 및 MDB의

모든 EJB 메소드는 Requires_New 트랜잭션 속성으로 표시됩니다.

답변

1

아니요. @REQUIRES_NEW이라는 주석이있는 EJB가 각각 자체 트랜잭션 내에서 —으로 처리되는 동안 MDB의 트랜잭션이 일시 중단되기 때문에 No입니다. 추가 가정은 setRollbackOnly()이 EJB의 트랜잭션을 롤백하는 유일한 효과, 즉 EJB가 올바르게 종료되고 예외를 throw하지 않은 유일한 영향입니다 (롤백을 위해 투표 한 후 자원과의 추가 상호 작용으로 인해 javax.ejb.EJBException 패밀리의 예외가 발생할 수 있음)).

관련 문제