.NET 4.0 응용 프로그램이 갑자기 TNS 오류로 인해 작동을 멈춥니다(IIS 7.5, Oracle 11.2.0 클라이언트)

.NET 4.0 응용 프로그램이 갑자기 TNS 오류로 인해 작동을 멈춥니다(IIS 7.5, Oracle 11.2.0 클라이언트)

저는 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

관련 정보