경위
- 일시 : 2025/05/21일 일일 모니터링시 최초 발견 , 22일 다회 발견
- 클라이언트 : AP서버
- 대상 DB : DB2 호기 CONNECT시 TMOUT 발생
- 사유 : 디스크 및 메모리 정리 스크립트를 매일 새벽 동작하도록 신규 배포
위 오류는 해당 스크립트가 돌기 전이라 디스크 및 메모리 여유공간이 적어서 커넥션 시 딜레이 발생으로 추측 - 해결 : 스크립트 정상 수행 이후 해당 로그 발생하지 않음
예상 주 원인
- SQL*Net Inbound 연결이 지연됨
- SQLNET.EXPIRE_TIME 또는 CONNECT_TIMEOUT 설정이 너무 짧음
- 서버의 리소스 부족 (CPU, 메모리 등)
- 보안 솔루션 (예: 방화벽, IDS/IPS)이 Oracle 연결을 검사하거나 지연시킴
결론
- WAS 담당자 찾아서 WAS내 서비스 로그와 DB ALERT로그 비교하여 원인 찾기
- SQLNET.ORA , LISTENER.ORA파일 파라미터 설정 너무 짧지않은지 확인 (디폴트 60초)
- 클라이언트 서버 리소스 확인
Alert 로그
TNS-12535: TNS:operation timed out
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=XXX.XX~)(PORT=XXX))
2025-05-22T23:37:32.638046+09:00
WARNING: inbound connection timed out (ORA-3136)
2025-05-22T23:39:23.254449+09:00
SQLNET.ORA , LISTENER.ORA 설정파일 확인
오라클 10gR2부터 DoS(Denial of Service) 공격에 대비하기 위해 다음 두 파라미터의 기본 설정값이 60초로 설정됨
SQLNET.INBOUND_CONNECT_TIMEOUT (sqlnet.ora 파일에 설정) => sqlplus /@orcl19 접속시에만 영향을 줌
INBOUND_CONNECT_TIMEOUT_리스너명 (listener.ora 파일에 설정) => telnet 접속시