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에서 연결을 끊지만 웹서버에서는 연결되었다고 인식해서 발생하는 오류로 추정됩니다.


어쨋든 문제는 해결되었습니다.



+ Recent posts