문제

나는 JOTM과 Hibernate EntityManager를 통합하여 거래 방식 환경에서 EJB를 테스트하지만 컨퍼런스 외의 외부인을 테스트하려고합니다.

내 테스트는 다음과 같습니다.

  1. JOTM을 시작하십시오
  2. JOTM의 사용자 추출을 JNDI에 넣으십시오
  3. StandardXadataSource를 작성하고 구성합니다
  4. 데이터 소스를 JNDI에 넣으십시오
  5. 최대 절전 모드를 구성하고 EMF를 만듭니다
  6. EM을 만듭니다
  7. 거래를 시작하십시오
  8. EM의 거래에 가입하십시오
  9. 엔티티를 저장하십시오
  10. 저장되어 있는지 확인하십시오
  11. 거래 롤백
  12. 레코드 수에 대해 데이터베이스를 확인하십시오
  13. 모든 것을 찢어 버리십시오

내 코드는 다음과 같습니다.http://pastebin.com/m22a9f6b

로깅 출력은 다음과 같습니다.http://pastebin.com/m6da9383a

테스트는 12 단계에서 실패합니다 (121 행).

보시다시피, 거래를 롤백했지만 DB에는 레코드가 있습니다. 전혀 사용하지 않는 트랜잭션처럼 보이고 레코드가 DB로 들어갔습니다.

이것이 어떻게 일어날 수 있는지, 어떻게 고치는 지 아이디어가 있습니까?

도움이 되었습니까?

해결책

간단한 연결 대신 Xaconnection을 반환 할 ConnectionProvider의 구현을 제공해야한다고 생각했습니다. 이런 식으로 거래는 작동하는 것 같습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top