http://serendipity.tistory.com/65 를 참고했습니다.

톰캣에서 “ORA-01000: 최대 열기 커서 수를 초과했습니다” 오류가 발생하는 것은
오라클 프로세스당 커서수가 증가되어 발생되는 에러.

1) 쿼리로 오라클 프로세스 당 커서수를 확인

SELECT sid, count(sid) AS cursor
FROM V$OPEN_CURSOR
WHERE user_name = 'SCOTT'
GROUP BY sid
ORDER BY cursor DESC

접속자수에 따라 다르지만, 오라클 cursor 수가 100개(일반적인 사이트는 20개)가 넘는 세션에서 사용하는 SQL문장은 의심할 필요 있음.


2) SQL문에서 사용하는 커서수

SELECT sql_text, count(sid) cnt
FROM V$OPEN_CURSOR
GROUP BY sql_text
ORDER BY cnt DESC

커서수가 많은 sql 문장을 찾아보면, 자바에서 preparedStatement가 close()되지 않았을 확률이 높음
특히 for문이나 Loop문에서 preparedStatement를 사용하는 부분 확인 필요.