우리는 하나의 XA 트랜잭션의 일부로 JMS를 읽고 데이터베이스 트랜잭션을 수행하는 응용 프로그램을 가지고 있습니다. 메시지에 몇 가지 문제가있는 것으로 확인되면 데이터베이스를 롤백해야합니다 ( ). 우리는 JMS에서 롤백하여 메시지를 다시 읽지 않게하고 싶습니다. (이전에 롤백이 시작된 경우 MDB가 전체 프로세스를 한 번 더 트리거하지 못하도록합니다.)JMS/MDB 롤백
1
A
답변
4
올바르게 이해했는지 확인하기 위해 데이터베이스에서 일부 작업을 수행하는 트랜잭션 메시지 기반 빈이 있습니다. 여전히 MDB가 XA 트랜잭션의 일부가되기를 원하지만 데이터베이스 작업이 MDB가 참여하는 트랜잭션의 상태에 영향을 미치기를 원하지는 않습니다.
즉, 두 가지 해결책이 있습니다. 이미 모두가 같은 트랜잭션 컨텍스트에서 실행 아니라면
- MDB를 컨테이너 관리 트랜잭션 내에서 실행되는 경우는
@REQUIRES_NEW
주석 —와 함께 EJB에 모든 데이터베이스 작업을 마무리. 당신의 MDB가 빈 관리 경우
는 메시지 전달 트랜잭션의 일부가 아닌, 그래서는 상관없이, 재 전달되지 않습니다 어떤 —
EJB 코어 계약 및 요구 사항의 섹션 5.4.12 :
빈 관리 트랜잭션 구분을 사용하는 메시지 구동 Bean이 javax.transaction을 사용하는 경우. 트랜잭션을 구분하기위한 UserTransaction 인터페이스로 인해 빈이 호출되는 메시지 수신은 트랜잭션의 일부가 아닙니다.
관련 문제
- 1. 롤백 삽입문
- 2. 데이터베이스 롤백
- 3. JMS 롤백
- 4. 버전 롤백
- 5. MbUnit 롤백
- 6. 트랜잭션 롤백
- 7. 롤백 drawRect :
- 8. SQL에서 롤백
- 9. lucene에서 롤백
- 10. SQL에 linq로 롤백 하시겠습니까?
- 11. IDbTransaction 롤백 시간 초과
- 12. 식별자 롤백 NHibernate
- 13. SQL Server 롤백 트랜잭션
- 14. Java : 롤백 데이터베이스 업데이트?
- 15. Windows에서 롤백 루비 버전
- 16. 롤백 명령문은 정확히 무엇을합니까?
- 17. 대량 복사를위한 롤백
- 18. LINQ 및 롤백 처리
- 19. 전체 프로 시저 롤백
- 20. Ab initio 롤백
- 21. 안드로이드 sqlite 롤백
- 22. 방법 : squeryl의 트랜잭션 롤백
- 23. cakephp 롤백 트랜잭션
- 24. XML 문서의 롤백 변경
- 25. 원자력과 내구성을위한 롤백
- 26. SVN 버전 롤백 질문
- 27. 동일한보기의 이전 버전으로보기 롤백
- 28. CMS에서 롤백 및 미리보기
- 29. savepoint mysql에서 롤백 커밋
- 30. 롤백 - 저장소 통합 테스트