Nuget 을 통해 ODP.NET 12.1.24160719 버전을 받아 Oracle 10g 와 접속하는데, 불특정하지만 빈번하게 ORA-12570, ORA-12571 오류가 발생하는 경우가 확인되었습니다.
사내 시스템이라 사용자가 많지도 않고, 재시도시 해결되는 것으로 봐서 크게 신경쓰진 않았는데 누적되고 임원회의때 걸릴까봐 불안하긴하더군요.
정확한 증상은 [ORA-12570: 네트워크 세션: 예상치 않은 패킷 읽기 오류] 이고, 보통 최초 접속시 발생하는 것으로 미루어보아 Connection Pool 관련 문제로 추측되었습니다.
google 검색을 했을때 나오는 해결책은 버퍼 사이즈 문제나, 세션 초과에 대한 내용이라 안맞더군요.
결과적으로 connection string을 수정해서 해결되었습니다.
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=디비IP)(PORT=1521))(CONNECT_DATA=(SID=디비SID)));User ID=디비ID;Password=디비PW;Pooling=true;Min Pool Size=0;Connection Lifetime=180;Max Pool Size=50;Incr Pool Size=5;
-- 정확히 확인 되지 않은 제 추측입니다.
핵심은 빨간색 배경인 Min Pool Size=0; 입니다.
보통 Min Pool Size=1; 로 설정해서 최소 연결 유지를 남겨놓는데, 일정시간 접속자가 없는 경우 해당 연결이 Timeout 되면서 DB에서 연결을 끊지만 웹서버에서는 연결되었다고 인식해서 발생하는 오류로 추정됩니다.
어쨋든 문제는 해결되었습니다.
'개발 > ASP.NET MVC' 카테고리의 다른 글
URL 컨트롤러/액션 규약을 벗어난 URL 을 지정하고 싶을때 (0) | 2017.03.15 |
---|