代码之家  ›  专栏  ›  技术社区  ›  Anoop

IOException:网络适配器无法建立连接

  •  3
  • Anoop  · 技术社区  · 15 年前

    我正试图从Java应用程序连接到Oracle数据库。我正在使用oracle.jdbc.driver.OracleDriver,版本:0/1连接到数据库。但是DriverManager.getConnection()给了我“网络适配器无法建立连接”。这不是每次都发生。它有时只发生一次,可能是8-10次。am得到的堆栈跟踪是:

    Driver Class : oracle.jdbc.driver.OracleDriver, version 0/1
    java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
    at oracle.jdbc.ttc7.TTC7Protocol.handleIOException(TTC7Protocol.java:3678)
    at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:352)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:365)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:547)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:347)
    at java.sql.DriverManager.getConnection(DriverManager.java:316)
    at java.sql.DriverManager.getConnection(DriverManager.java:297)
    

    因为我并不是每次都这样,所以我无法猜测是否存在任何连接问题。我可以看到很多开发人员都有同样的问题,但对他们来说,这种情况每次都会发生。请帮帮我,因为我真的被困在解决这个问题上了。

    3 回复  |  直到 14 年前
        1
  •  2
  •   ASGM    13 年前

    我有一个类似的问题,我尝试使用IP地址而不是数据库URL中的主机名,它对我有效。

    jdbc示例:

    ...(DESCRIPTION=(ADDRESS.....(HOST=1.1.1.1)..)
    
        2
  •  2
  •   martin clayton egrunin    13 年前

    这可能是网络问题:

    • 有防火墙给你带来麻烦吗?尝试远程登录到端口。防火墙是否有状态?

    • DNS是否太慢(使用IP地址而不是主机名,请尝试DNS查找)

    • 你关闭连接了吗?你是不是让听者超负荷了?

        3
  •  -1
  •   Thorbjørn Ravn Andersen    15 年前

    我会仔细看一看,也许会在

    at oracle.jdbc.ttc7.TTC7Protocol.handleIOException(TTC7Protocol.java:3678)
    

    以查看处理的IOException的精确情况。这将告诉您根本原因,这有助于诊断问题。