본문 바로가기

Spring/batch15

spring batch multi datasource, jpa, transactionManager 정리 source 는 Github 에 있습니다. spring batch multi datasource, transaction jpa 정리 spring batch 에서 2개 이상의 다른 데이터 베이스에 접근하는 예제를 정리했습니다. 또한, 2개 이상의 다른 데이터 베이스를 어떠한 방식을 통해 트랜잭션 묶어서 처리하는지에 대해서도 정리했습니다. 이 예제에서는 h2, MySQL 을 jpa 를 통해 저장하는 예제를 정리했습니다. data source 세팅 부분 LazyConnectionDataSourceProxy LazyConnectionDataSourceProxy 로 wrapping 한 이유는 스프링의 경우 트랜잭션 시작 시, datasource 의 connection 를 사용하건 안하건 커넥션을 확보합니다. 그로.. 2021. 7. 18.
spring-batch commit interval 이란? spring-batch 의 ChunkedOrientedTasklet 방식이란? commit-interval 을 알아 보기 전에 ChunkedOrientedTasklet 방식을 알고 넘어 가야합니다. 이 구조는 reader - processor 가 commit-interval 만큼 반복된 후, 가공된 데이터를 writer 에서 bulk 처리하는 구조입니다. 이렇게 구조가 나온 이유는 배치 프로그램의 대부분의 형태가 입력 --> 데이터 가공 --> 쓰기 로 되있기에 이런 구조가 나온 것이라 생각됩니다. source 를 보면 아래와 같은데 reader - process 가 반복되고 bulk 데이터를 writer 하는 구조입니다. @Nullable @Override public RepeatStatus execu.. 2021. 7. 9.
spring batch jpa 환경에서 ID 생성전략에 따른 bulk insert 하는법 source 는 Github 에 있습니다. spring batch jpa 환경에서 ID 생성전략에 따른 bulk insert 하는법 spring batch jpa 환경에서 bulk insert 하는법을 정리했습니다. jpa ID 생성전략에 따라 bulk insert 하는법을 정리해봤습니다. 애플리케이션에서 ID 를 채번하는 방법 애플리케이션에서 ID 를 채번해서 repository.save(xxx) 를 호출하면 merge 방식으로 동작합니다. merge 의 상세 동작은 1차 캐시에서 엔티티를 찾게되고, 데이터가 없으면 DB 를 조회하게 됩니다. 그런 후 데이터를 반환할 때 복사본을 만들게 되는데 약간의 리소스를 소모하게 됩니다. 복사본을 만드는 이유는 동시성 때문입니다. 만약 하나의 Entity 에 여러.. 2021. 6. 24.
spring-batch 통합 테스트 정리 source 는 Github 에 있습니다. spring-batch 통합 테스트 spring-batch 통합테스트 하는 방법 입니다. spring-batch 4.1 이상 기준으로 동작합니다. source tasklet 을 호출하는 간단한 예제입니다. @Slf4j @Configuration public class SimpleTaskletJob { @Autowired public JobBuilderFactory jobBuilderFactory; @Autowired public StepBuilderFactory stepBuilderFactory; private SimpleTaskletBean simpleTaskletBean; public SimpleTaskletJob(SimpleTaskletBean simple.. 2021. 6. 12.