로딩
요청 처리 중입니다...

[ibatis] java 배치 개발 시 OOM(Out of memory) 해결방안

 [ibatis] java 배치 개발 시 OOM(Out of memory) 해결방안

배치 프로그램을 만들 때 일반적으로 ibatis에서 data list를 select 후 DAO에서 List로 받아서 Loop 돌면서 처리 하는데 이 경우 너무 많은 데이터를 처리하다 보면 Out of memory 오류가 발생합니다. 모든 데이터를 메모리에 담아서 처리하니까 메모리가 많이 필요 할 수 밖에 없습니다.

이럴 때 queryWithRowHandler를 사용하면 데이터를 한 건씩 반환받아서 처리할 수 있습니다. 아래와 같이 개발 할 수 있습니다.

RowHandler import java.util.Map; import com.ibatis.sqlmap.client.event.RowHandler; public class RowHandlerCallback implements RowHandler { @Override public void handleRow(Object arg0) { Map map = (Map) arg0; Syst...

# ibatis # java배치 # mybatis # OOM # OutOfMemory # queryWithRowHandler