ORA-12537: TNS:connection closed
Oracle의미
통신 채널이 예기치 않게 닫혀 클라이언트와 서버 간 TNS 연결이 종료되었다. 연결을 수립하는 중이거나 직후에 세션이 끊긴다.
원인
리스너가 클라이언트를 서버 프로세스로 넘겼지만 프로세스를 생성할 수 없었거나 즉시 종료되었다: 인스턴스 크래시, PROCESSES 한도 도달, 운영체제 리소스 부족, 방화벽/중간 계층의 연결 차단, 또는 sqlnet.ora의 TCP.VALIDNODE_CHECKING/TCP.INVITED_NODES 규칙이 클라이언트를 거부한 경우다. 때로는 클라이언트와 서버 사이의 유휴 방화벽이 연결을 끊는다.
해결 방법
listener.log와 sqlnet.log를 확인한다. PROCESSES/SESSIONS 한도 확인: SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions'); 서버 측 sqlnet.ora의 TCP.INVITED_NODES/TCP.EXCLUDED_NODES 목록이 클라이언트 IP를 거부하지 않는지 확인한다(로그온 버전 불일치는 이 오류가 아니라 ORA-28040을 발생시킨다). 방화벽의 유휴 타임아웃을 늘리거나 SQLNET.EXPIRE_TIME으로 keepalive를 보낸다. alert.log에서 인스턴스 크래시 기록을 확인한다.
같은 데이터베이스의 다른 항목
- ORA-00845MEMORY_TARGET not supported on this system (이 시스템에서 MEMORY_TARGET 미지원)
- ORA-27102out of memory
- ORA-04030out of process memory when trying to allocate N bytes (N바이트 할당 중 프로세스 메모리 부족)
- ORA-03135connection lost contact
- ORA-01033ORACLE initialization or shutdown in progress (ORACLE 초기화 또는 종료 진행 중)
- ORA-00600internal error code, arguments: [...]
- ORA-07445exception encountered: core dump