ORA-01000: 최대 열기 커서 수를 초과했습니다. 에러시 조치 방법
-> 운영서버에서 ORA-01000 에러가 발생한 적이 있었는데 다음과 같이 임시 조치하였다.
(위 에러가 발생할 경우 DB관련 프로세스가 모두 동작하지 않으므로 빨리 조치해야 함)
-> 오라클 DBA 계정으로 접속하여 수행해야 하며 오라클에 설정되어 있는 커서수를 파악해야 한다.
-> 이 문제가 발생하는 경우는 개발소스 레벨의 문제가 대부분이므로 반드시 소스를 수정해야 함.
-ml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.커서 개수가 300개 가량 되는게 있는지 확인(너무 많은 갯수를 지닌거 포함)
/* SID 확인 */
SELECT count(*) cnt, sid FROM v$open_cursor
GROUP BY sid
ORDER BY cnt DESC
2. 위의 SID를 이용하여 SERIAL# 구한다.
/* SERIAL# 확인 */
select q.sql_text, AA.SERIAL#
from v$open_cursor o, v$sql q, v$session AA
where q.hash_value=o.hash_value and o.sid = AA.SID AND O.SID=98 AND ROWNUM < 10
3. SID와 SERIAL#로 해당 세션을 삭제
ALTER SYSTEM KILL SESSION '98,57' -- SID, SERIAL# 을 이용하여 삭제
참고: 커서 개수가 300개 가량 되는게 있는지 확인하는 SQL
SELECT S1.sql_text, S1.CNT from
(SELECT sql_text, count(sid) CNT FROM v$open_cursor
GROUP BY sql_text
ORDER BY CNT desc) S1
WHERE S1.CNT > 5
ORDER BY S1.CNT DESC
[출처] [오라클] ORA-01000: 최대 열기 커서 수를 초과했습니다. 에러시 조치 방법|작성자 BINU
ORA-01000: 최대 열기 커서 수를 초과했습니다.
PreparedStatement나 Statement를 사요하고 close()를 하지 않아서 발생
. 프로세스당 커서수 확인
> select sid, count(sid) cnt from v$open_cursor group by sid order by cursor desc;
. sql당 사용하는 커서수 확인
> select sql_text, count(sid) cnt from v$open_cursor group by sql_text order by cnt desc;
. 해당 sid 확인
> select sid, serial# from v$session where sid=18;
. session kill
> alter system kill sessin '18,3';
[출처] ORA-01000: 최대 열기 커서 수를 초과했습니다.|작성자 월급날
'WebLogic' 카테고리의 다른 글
웹로직 오라클 clob 업데이트 (0) | 2012.09.03 |
---|---|
웹로직 weblogic 오라클 clob (0) | 2012.08.24 |
WEBLOGIC 비밀번호 (0) | 2012.07.29 |
TOMCAT java.lang.ClassCastException: oracle.sql.CLOB (0) | 2012.07.29 |
STAGE & NOSTAGE 모드 (0) | 2012.07.29 |