将oracle 8i与数据源方法连接时出现异常

将oracle 8i与数据源方法连接时出现异常,oracle,datasource,oracle8i,ora-01034,Oracle,Datasource,Oracle8i,Ora 01034,我的系统中只安装了Oracle8i,工作正常。我可以使用jdbc和driverManager成功地连接到它,但问题发生在我使用OracleDataSource连接到它时。它说甲骨文不可用。我想我在提供sid时做错了什么 我代码的一部分- OracleDataSource ds = new OracleDataSource(); ds.setDriverType("thin"); ds.setServerName("localhost");

我的系统中只安装了Oracle8i,工作正常。我可以使用jdbc和driverManager成功地连接到它,但问题发生在我使用OracleDataSource连接到它时。它说甲骨文不可用。我想我在提供sid时做错了什么

我代码的一部分-

       OracleDataSource ds = new OracleDataSource();
        ds.setDriverType("thin");
        ds.setServerName("localhost");
        ds.setPortNumber(1521);
        ds.setDatabaseName("ORCL0"); // sid
        ds.setUser("scott");
        ds.setPassword("tiger");
       Connection conn = ds.getConnection();
tnsnames.ora条目(部分)-

listener.ora条目(它的一部分)-



在我的代码中,我尝试了oracle,orcl也代替了ORCL0,但ORCL0以外的任何东西都会导致Io异常:连接被拒绝,而提供ORCL0则会导致异常-ORA-01034:oracle不可用。。。。所以我猜ORCL0是正确的,但我预计还有其他问题

你确定你使用的是8i吗?这是十年来都不支持的东西?您发布的listener.ora(假设它来自服务器)指向一个目录,这意味着您正在使用Oracle 9.2,该目录仍然不受支持,但至少是最近的。如果您使用的是8i,那么您使用的是什么版本的8i?您使用的是什么版本的JDK和JDBC驱动程序?较新版本的Oracle客户端软件最终会放弃对较旧版本Oracle的支持。Justin,我正在使用Oracle 8i 8.1.5版(自述文件)。我也不确定它是否会连接到8i,这就是我提出问题的原因。我正在使用EclipseIndigo、JavaSE1.6和ojdbc14-1.jar。是否支持?您使用的JDBC驱动程序版本是什么?您是否正在使用11.2.0.3 JDBC驱动程序、10.2.0.5 JDBC驱动程序等。?我不知道有哪个版本的JDBC驱动程序ojdbc14.jar与1.6JVM兼容。据我所知,1.6JVM驱动程序都称为ojdbc6.jar。因此,在我们开始研究Oracle版本之前,您使用的JVM版本和您使用的JDBC驱动程序版本之间似乎不匹配。在ojdbc14.jar中,驱动程序版本是9.0.2.0.0,我想它不支持1.6 JVM。我卸载了oracle 8i,因为保留它毫无意义。。正在安装Oracle 11g XE。。。将尝试同样的事情,并在这篇文章之后更新。非常感谢Justin的帮助Hi Justin,Iv现在安装了Oracle11g,其余的一切都几乎没有变化。正如我推测的那样,odbc14.jar(驱动程序9.0.2.0.0)支持Java1.6,因此一切正常。问题可能是Oracle 8i不支持较新的jdbc驱动程序。(或者至少可能b 8i din支持Java 1.6)
 ORACLE =
   (DESCRIPTION =
    (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = guddus-comp)(PORT = 1521))
   )
     (CONNECT_DATA =
     (SERVICE_NAME = oracle)
  )
 )
SID_LIST_LISTENER =
(SID_LIST =
  (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\ora92)
    (PROGRAM = extproc)
  )
  (SID_DESC =
    (GLOBAL_DBNAME = oracle)
    (ORACLE_HOME = C:\oracle\ora92)
    (SID_NAME = ORCL0)
  )
  (SID_DESC =
  (GLOBAL_DBNAME = dbabhi)
  (ORACLE_HOME = C:\oracle\ora92)
  (SID_NAME = DBABHI)
  )
)