처음으로 개발과 관련된 이야기를 합니다.
종종 ASP로 개발한 웹 페이지가 5XX 대 Error를 일으키는 경우가 있습니다. 보면 랜덤 하게 발생하나 주기적으로 발생합니다. 자 서버를 볼까요?? ---------------- 아래 처럼 처음에는 생각 했습니다. IIS 6.0 부터는 Worker Process 가 여러게 돌게 됩니다. 이게 w3wc.exe 인데, 프로세스는 핸들 테이블 이라는 것을 가지고 있습니다. 자 테이블이 5개 까지 저장이 가능합니다. 1. 2. 3. 4. 5 까지 썼습니다. 자 6을 쓸려면 어떻게 될까요?? 바로 다시 1을 참조하게 되는 겁니다. 즉 어디선가 개발 단에 leak 있었다는 것을 추정할 수 있습니다. 위의 경우에는 MS 버그 같은 느낌이 진하게 들지만 제가 본 경우는 server.createObject 구문으로 인해 발생했었습니다. 즉 해당 페이지들을 실행 시키는 w3wp.exe의 object 핸들 테이블이 꽉 찬거죠... 보통 저런 경우에는 Server. 을 빼고 createObject로 변경하면 Fix가 가능하며, Windows 2003 SP2를 적용할 경우에도 Fix가 가능한 것으로 보입니다. 아니면 Work Process 의 재생 주기를 줄이는 방법도 있겠죠~~~^^ ----------------- 하지만 아니더군요... 죄송합니다. 일단 해당 Process 는 MTS 입니다. 옛날 버전의 COM+, DCOM 이죠...^^ 이 녀석의 Leak은 확인은 가능하지만, 고칠려면 개발자가 직접 고쳐야 합니다. 자 위의 경우에는 간단합니다. 솔직히 MTS (미들웨어) 사용하는 경우가 있을까요?? 그것두 옛날 버전의 ASP의 MTS를... 그럼... 간단하게 해당 구문의 Server.CreateObject > CreateObject 로 변경해주면 Fix 됩니다. |