배치 기능에 대한 문의
- 작성자 :
- 지*근
- 작성일 :
- 2017-11-20 11:42:39
- 조회수 :
- 2,184
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
1) 강제로 commit을 실행하는 방법
<batch:tasklet ref="AAStp01Tsk" transaction-manager="aaTracManager"/>
AAStp01Tsk.java 구현시 강제 commit을 위해 sqlSessionTemplate.commit(); 시 오류가 발생합니다.
강제 commit을 하려면 어떻게 해야 할까요?
2) chunk 구현시 입력(reader)은 A DB에서 출력(writer)은 B DB를 참고할 수 있나요?
// aaTracManager 로만 접속하였는데 01ItmRdr , 01ItemWrt 다른 transaction-manager 로 접속이 가능한지요?
<batch:tasklet transaction-manager="aaTracManager"/>
<batch:chunk commit=interval="1" reader="01ItmRdr" writer="01ItemWrt"/>
</batch:tasklet>
<batch:tasklet ref="AAStp01Tsk" transaction-manager="aaTracManager"/>
AAStp01Tsk.java 구현시 강제 commit을 위해 sqlSessionTemplate.commit(); 시 오류가 발생합니다.
강제 commit을 하려면 어떻게 해야 할까요?
2) chunk 구현시 입력(reader)은 A DB에서 출력(writer)은 B DB를 참고할 수 있나요?
// aaTracManager 로만 접속하였는데 01ItmRdr , 01ItemWrt 다른 transaction-manager 로 접속이 가능한지요?
<batch:tasklet transaction-manager="aaTracManager"/>
<batch:chunk commit=interval="1" reader="01ItmRdr" writer="01ItemWrt"/>
</batch:tasklet>
A
안녕하세요 지수근님
표준프레임워크센터입니다.
1) tasklet을 커스토마이징하여 reader와 writer를 구동하시는 한데요.
자세한 내용이 없어서 답변에 한계가 있을듯 합니다.
transactionManager를 선언하게 되면 스프링이 트랜젝션 제어하게 되고
SqlSession 클래스에 있는 c ommit(), rollback() 메소드를 사용할 수 없습니다.
UnsupportedOperationException 예외가 발생했을듯 합니다.
이경우 PlatformTransactionManager를 사용하시면 수동으로 커밋이 가능할 듯 합니다.
2) itemReader 빈을 설정할때 sqlSessionFactory를 지정하실수 있는데요.
해당 property에 원하시는 sqlSessionFactory지정하시면 될듯합니다.
itemWriter에도 해당 property가 존재하므로 여기에도 설정하여 사용이 가능합니다.
감사합니다.
좋은 하루 되십시요.
표준프레임워크센터입니다.
1) tasklet을 커스토마이징하여 reader와 writer를 구동하시는 한데요.
자세한 내용이 없어서 답변에 한계가 있을듯 합니다.
transactionManager를 선언하게 되면 스프링이 트랜젝션 제어하게 되고
SqlSession 클래스에 있는 c ommit(), rollback() 메소드를 사용할 수 없습니다.
UnsupportedOperationException 예외가 발생했을듯 합니다.
이경우 PlatformTransactionManager를 사용하시면 수동으로 커밋이 가능할 듯 합니다.
2) itemReader 빈을 설정할때 sqlSessionFactory를 지정하실수 있는데요.
해당 property에 원하시는 sqlSessionFactory지정하시면 될듯합니다.
itemWriter에도 해당 property가 존재하므로 여기에도 설정하여 사용이 가능합니다.
감사합니다.
좋은 하루 되십시요.