2011-09-06 84 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侦听器的传入请求缓冲区由于许多同时连接请求而过载。它会失败其中的一些。

在连续的连接请求之间,您可以让线程休眠一下(半秒到一秒左右)。之后,不要关闭连接,直到它们断开。保留它们并重新使用它们。

相关问题