2013-08-09 1 views
1

스프링 배치를 기반으로하는 스프링 애플리케이션이 있습니다. 기본적으로 스프링 배치는 단계 (즉, 리더, 작성자 및 프로세서)에서 트랜잭션을 도입합니다. 실제로 트랜잭션을 사용할 필요가없는 특정 단계가 있습니다. 트랜잭션은 이러한 메서드에 대해 불필요하게 활성화되어 있기 때문에 하나의 메서드에서 두 개의 다른 데이터베이스를 호출 할 때 런타임 오류가 발생합니다.Spring에서 특정 메소드를 트랜잭션 적이 지 않게 만들기

스프링이 특정 메소드 세트에 대해 DISABLE 트랜잭션에 제공하는 주석이 있습니까?

또는 나 거래 없애 할 수 있습니다 스프링 배치에서 사용할 수있는 일이 중 하나를 완전히 또는

선언 전 세계적으로 거래를 비활성화 할 수 있습니다 솔루션도 공개입니다. 링크, 종이 크게 감사하겠습니다. 미리 감사드립니다. Samir

답변

3

스프링 배치는 본질적으로 트랜잭션입니다. 데이터 소스가 트랜잭션 적이 지 않더라도 JobRepository의 의미에 필요합니다. Spring Batch로 얻을 수 있고 트랜잭션이 아닌 가장 가까운 것은 ResourcelessTransactionManager를 사용하고 있습니다. 이 트랜잭션 관리자는 본질적으로 작업이 트랜잭션 범위 내에 있는지 없는지 추적하는 노 - 트랜잭션 관리자입니다.

관련 문제