ORACLE:Ioexception:networking适配器无法build立连接

我们偶尔得到这个错误。 使用相同的TNS,我们可以正确连接数据库。 但是,我们在日志中看到这一点,同时进行连接。 以下是堆栈跟踪。 这是从Linux机器和Java应用程序数据库连接到Oracle任何帮助表示赞赏。

java.sql.SQLException:Ioexception:networking适配器无法build立连接在oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)在oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146 )在oracle.jdbc.driver.PhysicalConnection处的oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)处的oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)处(PhysicalConnection.java:439 )at oracle.jdbc.driver.T4CConnection。(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at 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.OracleConnectionPoolDataSourc 在oracle.jdbc.pool.OracleImplicitConnectionCache.makeCacheConnection(OracleImplicitConnectionCache.java:1567)处的oracle.jdbc.pool.OracleImplicitConnectionCache.getCacheConnection(OracleImplicitConnectionCache.java:478)上的e.getPooledConnection(OracleConnectionPoolDataSource.java:94) .oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:404)上的oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:189)上的oracle.jdbc中的.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.java:347)。 pool.OracleDataSource.getConnection(OracleDataSource.java:165)

Solutions Collecting From Web of "ORACLE:Ioexception:networking适配器无法build立连接"

尝试下面

  1. (显而易见)IP地址不正确 – 尝试PING
  2. 端口未打开或被防火墙阻止 – 请尝试TELNET
  3. 数据库监听器没有运行或绑定到不同的网络接口 – TELNET应该再次确认(也使用Oracle客户端工具进行连接)
  4. 没有本地端口可用于出站连接(不太可能) – 只有当您进行数千个连接或每分钟创建数百个新连接时才可用。

检查https://forums.oracle.com/forums/thread.jspa?messageID=2540479 ,也许你必须改变listener.ora的文件主机参数到你的主机参数。 您可以检查在Windows中cmd> hostname是什么参数是您的主机名

看起来连接池用完连接…当DBMS监听器的传入请求缓冲区被许多同时连接请求超载时。 它会失败其中的一些。

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