오라클 프로세스 maximum number of processes (150) exceeded 문제 0 7 12,436

by 콩이 오라클 프로세스 [2013.04.19 14:25:58]


안녕하세요..

우선 제 로컬에서 이클립스+오라클11g에서 테스트하던 환경입니다.
개발에는 문제가 없었구요.. 커넥션풀을 사용하여 모든 부분에 모두 close() 시켜줍니다.

제 로컬 환경에서 select * from v$resource_limit where resource_name = 'processes'; 를 sqlplus로 확인하면

저와, 디자이너 등 몇 명이 붙을 경우에

CURRENT_UTILIZATION : 29
MAX_UTILIZATION : 33

정도로 유지가 됩니다. 물론 INITIAL_ALLOCATION, LIMIT_VALUE 는 150입니다.

그런데 이번에 윈도우 2003에 오라클 11g 엔터프라이즈로 설치를 했는데요..

환경은 apache+tomcat6.0입니다. 

그런데 이상하게 웹서비스 시작하고 웹을 접속해보면 

maximum number of processes (150) exceeded

오류가 나옵니다.

그래서 
select * from v$resource_limit where resource_name = 'processes';로 확인을 했습니다.
apache, tomcat 모두 중지한 상태로도..
오라클을 재시작해보면..

CURRENT_UTILIZATION 
MAX_UTILIZATION 

위 두 값이 계속해서 150까지 증가가 됩니다. 서비스가 안되고 있는데도요..
너무 황당해서 질문드려봅니다.
제가 오라클을 잘못 설치한걸까요?

*윈도우2003서버이구요..제온에 2G RAM 환경입니다.
설치시 메모리 검사가 계속 실패된다고 나오긴 했습니다. 그래서 무시하고 설치하긴 했는데요..

by 아발란체 [2013.04.19 15:23:27]
지금 오라클에 어떤 녀석들이 붙었는지 확인을 해보는 것도 어떠실지용..
SYSDBA 권한으롱..
SELECT * FROM V$SESSION WHERE OSUSER != 'SYSTEM'

by 콩이 [2013.04.19 15:41:59]
아발란체님 답변 감사해요..

말씀하신대로 찾아보니.. 계속 생성되는 놈이

emagent.exe가 실행되네요.. 3개가 떠 있는데요..
USERNAME 은 DBSNMP
OSUSER가 NT AUTHORITY\SYSTEM이구요..
STATUS는 INACTIVE입니다.

위 세놈의 MODULE은
emagent_SQL_oracle_database
emagent_SQL_oracle_database
emagent_AQMetrics
구요..

INACTIVE상태인데.. 프로세스는 계속 증가합니다. ㅜㅜ 이거 바이러스 걸리건가요?

흠.. 그리고 찾아보니 job_queue_process인가요? 이게 1000으로 되어 있는데 
설정 건든게 없거든요? 이게 1000으로 된건 왜 그런가요? 이 이유 때문일까요/

참고로 아래의 쿼리로 검색해보았습니다.
SELECT Count(*) total_cnt, Count( DECODE( server, 'DEDICATED', 1, null)) dedicated_cnt,
Count( Decode (TYPE, 'BACKGROUND', 1, null)) back_cnt,
Count( DECODE( Status, 'ACTIVE', 1, NULL)) active_cnt
FROM V$SESSION;

그랬더니 TOTAL_CNT, DEDICATED_CNT, BACK_CNT, ACTIVE_CNT에서
TOTAL_CNT, DEDICATED_CNT가 계속증가하네요..
BACK_CNT와 ACTIVE_CNT는 21과 23에서 멈춰있구요..

by 콩이 [2013.04.19 15:50:30]
결국 또 죽었네요... 150을 찍고..ㅠㅠ

by 아발란체 [2013.04.19 16:09:32]
ㅡ,.ㅡ;; 난감한 상황이네요.

Emagent 관련 세션 다 죽이시공,
잡도 수행 안되게 해보실래용?
그래도 죽으면.... OTL

세션은 조회하신 결과에서 프로세스 아이디 확인하시고
alter system kill session sid, serial#'

잡은
alter system set job_queue_processes = 0;
또는
관련 데몬 죽이기
리눅스 경우 실행중인 프로세스 조회(ps) 하셔서 "ora_cjq..." 식의 이름 들어간 프로세스 kill.

확인 후 데몬 다시 시작하는 방법은
alter system set job_queue_processes = 10;


by 비니부장 [2013.04.20 11:47:00]
동일한 증상을 겪은 적이 있는데...
윈도 서비스에서 OracleDBconsole<sid>를 중지시키니 문제가 해결이 되었던 기억이 납니다.


by MD워시퍼 [2016.07.07 13:19:02]

오~ 감사합니다. OracleDBConsole[sid]를 중지하니깐, 모든 것이 해결되었네요.

이것때문에 재부팅을 얼마나 했는지 원~

감사합니다^^


by 타락천사 [2013.04.20 23:35:48]

v$resource_limit 는 어차피 리소스 임계치를 나타내주는 뷰입니다.
서버 초기화 파라미터에 설정된 파라미터보다 많은 프로세스(세션)이 발생하는 문제니
우선 어디서 세션이 계속 발생되는지 확인 해보세요.
v$session 에서  logon_time 과 username 으로..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입