저는 IIS 7.5 웹 서버를 지원하는데 앱 풀에 약간의 문제가 있었습니다. 내가 보고 있는 것은 Oracle 데이터베이스에 대한 연결을 사용하는 응용 프로그램이 작동을 멈추고 "ORA-12154: TNS: 지정된 연결 식별자를 확인할 수 없습니다." 오류가 발생하는 경우입니다. 더 짜증나는 점은 DB 서버, 웹 서버, 앱 내부에는 아무것도 바뀌지 않았다는 점입니다. 데이터베이스에 대해 TNS Ping을 시도했는데 제대로 연결되었습니다. SQL Server 데이터베이스를 사용하는 동일한 앱 풀의 앱에는 문제가 없는 것 같습니다.
중요: 앱을 다른 앱 풀에 속하도록 변경하면 다시 작동하기 시작합니다. 원래 앱 풀로 다시 변경하면 오류가 지속됩니다.
여기서 무슨 일이 일어날 수 있습니까? 왜 문제가 갑자기 나타나서 특정 풀에만 영향을 미치는지 알 수 없습니다.
감사해요!
답변1
TNS 수신기에 ping을 실행하여 Linux에서 다음과 같은 상황이 발생하는지 확인하세요.
tnsping oracle
...
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oracle)))
...
OK (2311770 msec)
작동 중이지만 다음과 같이 TNS 리스너로부터 상태를 가져올 수 없는 경우:
lsnrctl status
TNS-01153: Failed to process string: �9M0
다음 명령을 사용하여 리스너를 오류 없이 강제로 새로 고쳐 보십시오. 이는 Linux에서 동등한 Windows Server 명령을 찾는 것입니다.
lsnrctl start oracle
TNS-01106: Listener using listener name LISTENER has already been started
하드웨어/및/또는/잘못된 oracle 조정/및/또는/잘못된 oracle 구성과 관련이 있을 수 있습니다. Apache-Tomcat을 웹 서버로 실행하고 웹 서버를 시작한 직후에 실행한다는 점을 제외하면 귀하와 정확히 동일한 오류가 있습니다. 내 Oracle 서비스가 중지됩니다(TNS:listener 오류, 내 webapp에 소켓 시간 초과 예외가 표시됨). TNS 서비스가 중지되기 전에 실제로 앱을 실행할 기회가 있는 것과 같지 않습니다. 그게 OS 부분인 것 같습니다.
저는 CentOS 6.6이 설치된 가상 머신, VM Fusion을 사용하고 있습니다. 이 VM은 3개의 다른 랩탑 중 1개에서만 제대로 실행됩니다. RAM 메모리와 관련이 있을 수 있음을 확인할 수 있습니다. 그런 일이 발생하면 서버의 RAM은 어떻게 보입니까? 나는 이것을 여러 번 증가시켰고 문제를 해결했지만 다시 돌아왔습니다. 이를 제거하는 유일한 방법은 RAM을 모니터링하고 최대값에 도달하면 자동으로 청소한 다음 다음을 사용하여 강제로 실행하는 것이었습니다.
lsnrctl start oracle