[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<String, String> map = (Map<String, String>) arg0; Syst...


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

원문링크 : [ibatis] java 배치 개발 시 OOM(Out of memory) 해결방안