.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 Web 伺服器,但我的應用程式集區遇到了一些問題。我經常看到,使用 Oracle 資料庫連接的應用程式將停止工作並拋出“ORA-12154:TNS:無法解析指定的連接標識符”錯誤。令人抓狂的是,資料庫伺服器、Web 伺服器或應用程式內部沒有任何變化。我嘗試過對資料庫進行 TNS Ping,連接正常。在同一應用程式集區中使用 SQL Server 資料庫的應用程式似乎沒有問題。

重要提示:如果我將應用程式更改為屬於不同的應用程式池,它會再次開始工作。如果我將其更改回原始應用程式集區,錯誤仍然存在。

這裡可能發生什麼事?我不明白為什麼這個問題會突然出現並且只影響某些池。

謝謝!

答案1

嘗試 ping 您的 TNS 偵聽器,看看 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:偵聽器錯誤,並且在我的web 應用程式上我看到套接字超時異常),這並不像您有機會在TNS 服務停止之前實際運行應用程式一段時間,我想這是作業系統部分。

我正在使用安裝了CentOS 6.6 的虛擬機VM Fusion,該虛擬機僅在3 台不同筆記型電腦中的1 台上運行良好,我可以確認它可能與RAM 記憶體有關,發生這種情況時,您的伺服器RAM 看起來如何?我增加了幾次,它解決了這個問題,但後來又回來了,擺脫它的唯一方法是監視 RAM 並在達到最大值時自動清理它,然後強制它運行:

lsnrctl start oracle

相關內容