ORA-12535: TNS:작동이 중단중입니다
오라클서버 TNS Listener의 동작방식을 참조해보면, 알려진 포트(1521이나 사용자설정)로 서비스를 요청하면 서비스를 준비하고 새로운 포트를 할당하여 서비스를 연결하고 그 포트번호를 요청한 곳에 넘기면 이용하는 쪽에서 그 포트번호로 다시 접속하여 서비스를 이용하는 구조입니다.
이때 다시 접속하는 포트의 범위가 광범위 하여, Firewall(XP(SP2) 또는 2003 server 에서는 기본으로 제공됩니다) 내부에 있는 Oracle DB Server 에 접속하기 위해선 Listner 포트인 1521 만을 개방해주는 것만으로는 외부로부터 접속이 되지 않습니다.
이를 해결하기 위해서는
Registry에 값을 추가하여, listner 접속 포트로 접속 포트를 고정시킵니다.
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME<#> 에
(만약 하나의 시스템에 여러 ORACLE HOME 이 설치된 경우에는, HOME<#> 로 구분이 되어 있으며, 일반적으로 HOME0 으로 되어있습니다. 포트 고정시키고자 하는 HOME에 키를 추가해줍니다. 2개 이상도 가능하며, 그 경우 2개 이상의 포트를 방화벽에서 모두 열어줘야 합니다.)
형태 : 확장 가능한 문자열
이름 : USE_SHARED_SOCKET
값 : TRUE (직접 입력)
을 추가해준다면, 1521 포트만을 개방하여 방화벽 하에서 오라클 접속이 가능해집니다.
(만약 1521이 아닌 다른 포트를 사용한다면, 해당 포트를 열어줍니다)
참고로 XP(SP2) 에서 허용 포트 추가 방법
[제어판] -> [Windows 방화벽] -> [예외] 탭 -> [포트 추가] 클릭 후
포트 번호에 1521 (혹은 따로 지정한 Listner Port), TCP를 체크하신 후 적절한 이름을 적어줍니다.
[출처] Windows 에서 방화벽이나 NAT 에 연결시 ORA-12535|작성자 코난