2011-09-06 108 views
8

偶爾出現此錯誤。使用相同的TNS,我們可以正確連接數據庫。但是我們在日誌中看到這一點,同時進行連接。以下是堆棧跟蹤。這是從Linux機器和Java應用程序到Oracle的db連接任何幫助表示讚賞。ORACLE:Io例外:網絡適配器無法建立連接

值java.sql.SQLException:IO異常:網絡適配器無法建立在oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)連接 在oracle.jdbc.driver.DatabaseError .throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) at oracle.jdbc .driver.PhysicalConnection。(PhysicalConnection.java:439) at oracle.jdbc.driver.T4CConnection。(T4CConnection.java:165) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverEx tension.java:35) 在oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) 在oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:297) 在oracle.jdbc.pool。 OracleDataSource.getConnection(OracleDataSource.java:221) 在oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:157) 在oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:94) 甲骨文。 jdbc.pool.OracleImplicitConnectionCache.makeCacheConnection(OracleImplicitConnectionCache.java:1567) 在oracle.jdbc.pool.OracleImplicitConnectionCache.getCacheConnection(OracleImplicitConnectionCache.java:478) 在oracle.jdbc.pool.OracleImplicitConnection Cache.getConnection(OracleImplicitConnectionCache.java:347) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:404) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:189) at oracle。 jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:165)

+0

這不會發生思科UCCX問題嗎?我有同樣的問題,相同的錯誤消息,並偶爾發生。你有沒有找到解決方案? – AsherMaximum

+0

我們清除了DNS緩存,幫助! –

回答

10

嘗試以下

  1. (明顯)IP地址不正確 - 嘗試PING
  2. 端口未打開,或受阻通過防火牆 - 嘗試TELNET
  3. 的DB偵聽器未運行或綁定到不同的網絡 接口 - 再次,TELNET應確認這一點(也可以使用Oracle客戶端 工具連接)
  4. 沒有本地端口可用於出持續連接 (不太可能) - 只有當您創建數千個連接時,或者每分鐘創建數百個新連接時纔會這樣。
+0

謝謝你的回覆。項目1 - 4任何這些問題都會使這種情況偶爾發生? TELNET的作品。 –

0

檢查https://forums.oracle.com/forums/thread.jspa?messageID=2540479,也許您必須將listener.ora的文件主機參數更改爲您的主機參數。您可以在Windows中檢查您的主機名是什麼參數,cmd>主機名

+0

檢查它爲什麼?這是關於一個不同的信息。 – EJP

+0

@EJB不同的消息描述並不意味着不能幫助我們在不同的情況下。只是它幫助了我,就這些。 –

1

似乎連接池用完了連接... DBMS偵聽器的傳入請求緩衝區由於許多同時連接請求而過載。它會失敗其中的一些。

在連續的連接請求之間,您可以讓線程休眠一下(半秒到一秒左右)。之後,不要關閉連接,直到它們斷開。保留它們並重新使用它們。

相關問題