db connection 관련 질문입니다.
- 작성자 :
- 유*국
- 작성일 :
- 2017-06-22 13:36:59
- 조회수 :
- 1,347
- 구분 :
- 모바일
- 진행상태 :
- 완료
Q
안녕하세요.
수고하십니다. db connection 관련 질문입니다.
우선 환경은 오라클DB와 모바일 서버를 운영하고 있으며,
아파치 톰캣을 사용하고 있습니다.
처음 톰캣 기동후에 정상적으로 사용하다가 수시간이 흐른뒤 오라클에 관련된 exception이 발생합니다.
일정 JOB에서 ORA-01000: maximum open cursors exceeded 이 발생을 합니다.
(for문안에서 select하여 insert 합니다.)
커서를 늘이는것보다 db connection을 쿼리 수행후 종료해주고 싶은데 참고할만한 가이드가 있는지 여쭤봅니다.
수고하십니다. db connection 관련 질문입니다.
우선 환경은 오라클DB와 모바일 서버를 운영하고 있으며,
아파치 톰캣을 사용하고 있습니다.
처음 톰캣 기동후에 정상적으로 사용하다가 수시간이 흐른뒤 오라클에 관련된 exception이 발생합니다.
일정 JOB에서 ORA-01000: maximum open cursors exceeded 이 발생을 합니다.
(for문안에서 select하여 insert 합니다.)
커서를 늘이는것보다 db connection을 쿼리 수행후 종료해주고 싶은데 참고할만한 가이드가 있는지 여쭤봅니다.
A
안녕하십니까, 유흥국님
표준프레임워크센터입니다.
ORA-01000: maximum open cursors exceeded
오라클 프로세스당 커서 수를 먼저 확인해주시기 바랍니다.
프로세스당 커서 수를 확인하시면 프로세스 끼리 확연한 차이가 나는 세션의 SQL문을 점검 하시기 바랍니다.
관련된 곳에 JDBC 사용해서 코딩한 부분을 보시면 일반적으로 코드에
PreparedStatement or Statement를 사용하고 close()를사용하지 않아 발생합니다.
특히 for문을 사용한다고 말씀해주셨는데 for문 같은 루프를 도는 문장 내에서
PreparedStatement 부분에서 close()를 사용하지 않아 문의해주신 문제가 대체로 발생합니다.
감사합니다.
표준프레임워크센터입니다.
ORA-01000: maximum open cursors exceeded
오라클 프로세스당 커서 수를 먼저 확인해주시기 바랍니다.
프로세스당 커서 수를 확인하시면 프로세스 끼리 확연한 차이가 나는 세션의 SQL문을 점검 하시기 바랍니다.
관련된 곳에 JDBC 사용해서 코딩한 부분을 보시면 일반적으로 코드에
PreparedStatement or Statement를 사용하고 close()를사용하지 않아 발생합니다.
특히 for문을 사용한다고 말씀해주셨는데 for문 같은 루프를 도는 문장 내에서
PreparedStatement 부분에서 close()를 사용하지 않아 문의해주신 문제가 대체로 발생합니다.
감사합니다.