刚接触oracle,今天做的第一个例子就遇到了问题。在连接oracle时抛这个异常,实在是搞不清楚哪出了问题。大家帮忙看一下。
Exception in thread "main" java.sql.SQLException: Io 异常: Got minus one from a read call
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at 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.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.harvey.hb3.chapter1.test.MyApp.main(MyApp.java:59)代码如下:
public class MyApp {
  private static final String DBDRIVER  = "oracle.jdbc.driver.OracleDriver" ;  
    private static final String DBURL     = "jdbc:oracle:thin:@127.0.0.1:1521:hbdemo";//"jdbc:oracle:thin:@localhost:1521:hbdemo" ;  
    private static final String DBUSER    = "hbadmin" ;  
    private static final String DBPASSWORD  = "hbadmin" ;  
    private static Connection conn        = null ;  
   
public static void main(String[] args) throws Exception{
Class.forName(DBDRIVER);   
  
        conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;  
  
        System.out.println("数据库已连接");  }
}就这些,死活就是连不上,一到getConnection就抛错。
环境:oracle10g,fedora10郁闷一天了,望高手指教。

解决方案 »

  1.   

    you can try the following with DBCP: use the Oracle JDBC driver class oracle.jdbc.driver.OracleDriver and specify a JDBC URL with the following syntax: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=rac1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=rac2)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=on)(CONNECT_DATA=(SERVICE_NAME=ORCL)))
      

  2.   

    shiyiwan,你的意思是把listener.ora里的listener部分贴到连接语句后面?
      

  3.   

    在官方论坛上这样写的,
    google一下 “Got minus one from a read call”
      

  4.   

    但这句话是什么意思呢,看着像是listener.ora里的配置信息。我本地的listener.ora部分配置信息如下:
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        )
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
      )我按照楼上的说法结合本地配置信息,试了一次,还是报原先的错。
      

  5.   

    通过sqlplus连接没问题。
    见鬼了。
    还有可能是哪的问题呢?
      

  6.   

    127.0.0.1改成你的机器名呢?还有sqlplus能连上不一定其他程序可连的,因sqlplus本身在服务器上。
    最好是第三方的数据库客户端试试,比如squirrel-sql什么的
      

  7.   

    换个driver的jar试试最好是从server的jdbc/lib下拷一个过来ojdbc14.jar
      

  8.   

    没碰到过,参考一下吧,是网络问题,安装oracle的时候有没有报错?
    http://forums.oracle.com/forums/thread.jspa?threadID=431151
    http://forums.oracle.com/forums/thread.jspa?threadID=392603
      

  9.   

    回答9楼:我就是从server上考出来的。
    回答10楼:我也觉得是网络或者oracle配置问题,正在看……
      

  10.   

    你是考的那个jar包呀。刚才只看到你说可以sqlplus连你的slqplus连是本地连接,还是类似 sqlplus user/pwd@tnsname这样的方式连接呀用@tnsname这样的方式连接试试。