ResultSet을 가지고 한줄씩 disk 로 쓰면서 사용된 객체를 정리하는 것을 반복하더라도 OOM 나면서 죽는 경우,
Statement 를 생성할 때 Cursor 옵션에 문제가 있을 수 있다.
TYPE_SCROLL_SENSITIVE, TYPE_SCROLL_INSENSITIVE 로 Scrollable하게 만들면 내부적으로 Vector를 사용해 읽어온 데이터를 Caching 하게 되며 gc 되지 않는다.
TYPE_FORWARD_ONLY, CONCUR_READ_ONLY 를 지정하여 Cache 되지 않도록 하면,
OOM 을 피할 수 있다. 단, Scrollable Cursor 를 이용하던 로직은 불가능하거나 수정할 필요가 있다.
Statement 를 생성할 때 Cursor 옵션에 문제가 있을 수 있다.
TYPE_SCROLL_SENSITIVE, TYPE_SCROLL_INSENSITIVE 로 Scrollable하게 만들면 내부적으로 Vector를 사용해 읽어온 데이터를 Caching 하게 되며 gc 되지 않는다.
TYPE_FORWARD_ONLY, CONCUR_READ_ONLY 를 지정하여 Cache 되지 않도록 하면,
OOM 을 피할 수 있다. 단, Scrollable Cursor 를 이용하던 로직은 불가능하거나 수정할 필요가 있다.