2011-01-28 4 views
1

Spring을 Software Transactional Memory와 통합하여 Exception을 던지는 메소드에서 모든 객체와 DB 트랜잭션을 함께 롤백 할 수 있습니까? Spring + Deuce STM 또는 Spring + Multiverse STM의 가능성이 필요합니다. 내 궁극적 인 목표는 Exception을 throw하는 메서드에서 Object States와 DB 상태를 롤백하는 것입니다.Software Transactional Memory + Spring

답변

2

현재 Multiverse는 이러한 종류의 통합을 직접 지원하지 않지만 흥미로운 기능입니다. 저는 Multiverse 팀 &의 일원으로이 작업을 수행 할 수있는 권한이 있는지 알아볼 것입니다. 우리가 작업하고있는 기능 세트에서 우선 순위를 정하십시오 ..

생각하고 길게 ................................. ...............

STM에서 Transaction에 PostEvent 리스너를 등록하고 STM 트랜잭션이 실패 할 경우 DB 트랜잭션을 롤백하는 방법에 대해 알아 봅니다. 아마도 이것이 도움이 될 것입니다 :)

P. 어떤 버전의 Multiverse stm을 사용하고 있습니까?

- 사이

+0

실제로 STM/Multiverse에는 새로운 것이 있습니다. 나는 Spring DB Transaction Rollback이 특정 메소드에서 수정 된 모든 Object를 복구/되돌리기 위해 Spring을위한 솔루션을 원합니다. 왜냐하면 Spring 프레임 워크에서 개발 된 전폭적 인 응용 프로그램을 가지고 있고 응용 프로그램 코드를 변경하지 않기 때문입니다 (일부 주석을 추가하는 것 외에는). 나는 Multiverse 0.5를 선호했다. – Rahul

+0

spring 트랜잭션 이벤트 리스너를 사용하여 트랜잭션이 커밋 또는 롤백되었는지 확인하고 그에 따라 multiverse를 진행할 수 있습니다. 아직 시도하지는 않았지만 제대로 작동해야한다고 생각합니다. 문제는 DB 트랜잭션이 STM 트랜잭션보다 훨씬 길다는 것이며 우리는 너무 오래 기다리는 트랜잭션을 선호하지 않는다. –

+0

Spring에서는 트랜잭션 소유자가 메소드가 될 것이다. 트랜잭션 롤백은 메서드에 의해 throw 된 예외를 기반으로 결정될 수 있습니다. 마찬가지로 개체 상태 변경 내용이 되돌려 지도록 특정 메서드를 트랜잭션 (multiverse stm에서 제공됨)으로 주석 처리했습니다. 하지만 내가 java 인수를 이클립스에서 VM 인수로 제공하고 응용 프로그램을 실행할 때 예외가 생겼습니다. :: – Rahul

관련 문제