0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
阅读:1109回复:6

这个问题挂在CSDN三天没人理。。。郁闷~~ORCALE的问题~~帮个忙~~

楼主#
更多 发布于:2005-07-19 08:59
两台机器数据库一样,Oracle安装也都是直接默认安装(新手-_-#)。
测试代码如下:
import java.sql.*;

public class OracleTest {

/**
* @param args
*/
public static void main(String[] args) {
// 测试连接
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@*.*.*.*:1521:DISDATABASE";//IP保密之~
String user = "SYSTEM";
String password = "******";//密码就不写了。。。呵呵
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, password);

if(!conn.isClosed()){
System.out.println("数据库连接成功!");
}
conn.close();
}
catch(ClassNotFoundException e) {
System.out.println("找不到驱动程序");
e.printStackTrace();
}
catch(SQLException e) {
e.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
}
}

如果是连接本地机器,可以连接成功,换IP为另一台机器的时候就不行了(是不是没有启动什么listener?不懂。。。)
出现下面的异常:
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:273)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:318)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:343)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:147)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:31)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at gojyo.jdbc.OracleTest.main(OracleTest.java:24)

在CMD下用sqlplus连接时出现下列错误:
sqlplus SYSTEM/******@10.64.65.180:1521:DISDATABASE
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

请问,怎么解决,非常感谢。
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
lijiannan_1981
著名写手
著名写手
  • 铜币15枚
  • 威望0点
  • 贡献值0点
1C#
发布于:2005-07-19 10:10
Re:这个问题挂在CSDN三天没人理。。。郁闷~~ORCALE的问题~~帮个忙~~
首先,你的程序是有问题的

if(!conn.isClosed()){
System.out.println("数据库连接成功!");
}

虽然在你的本机测试没有问题,但是如果conn在建立连接不成功的时候,就会出现空指针的错误
应该改成
if(conn!=null){
System,out.println("success!");
}

其次,看出错信息,JVM抛出了Network Adapter 不能建立连接,这显然是你在设置网络的时候出了问题,去查查吧;

偶rpwt说不清楚,你要是再不会的话,只能周末见面再说了嘎嘎:)
无。
0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
2C#
发布于:2005-07-19 18:41
Re:这个问题挂在CSDN三天没人理。。。郁闷~~ORCALE的问题~~帮个忙~~
sqlnet.ora
# sqlnet.ora Network Configuration File: D:\oracle\product\10.1.0\Db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

#SQLNET.AUTHENTICATION_SERVICES= (NTS)

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)


listener.ora
# listener.ora Network Configuration File: D:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.1.0\Db_1)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = DISDATABASE)
      (SID_NAME = DISDATABASE)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = bigc-xeries-46)(PORT = 1521))
  )


tnsnames.ora
# tnsnames.ora Network Configuration File: D:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

DISDATABASE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = bigc-xeries-46)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DISDATABASE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
3C#
发布于:2005-07-19 18:42
Re:这个问题挂在CSDN三天没人理。。。郁闷~~ORCALE的问题~~帮个忙~~
在服务器上用 NCA 测试可以~~~

下午成功过一次,不知道后来又怎么搞的了。。。
现在又不行~~
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
4C#
发布于:2005-07-19 18:43
Re:这个问题挂在CSDN三天没人理。。。郁闷~~ORCALE的问题~~帮个忙~~
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:273)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:318)
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:343)
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:147)
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:31)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
	at java.sql.DriverManager.getConnection(DriverManager.java:512)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at gojyo.jdbc.OracleTest.main(OracleTest.java:24)
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
5C#
发布于:2005-07-19 18:44
Re:这个问题挂在CSDN三天没人理。。。郁闷~~ORCALE的问题~~帮个忙~~
数据库名字是 DISDATABASE
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
6C#
发布于:2005-07-21 11:22
Re:这个问题挂在CSDN三天没人理。。。郁闷~~ORCALE的问题~~帮个忙~~
居然是因为防火墙。。。明明开了1521...
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
游客

返回顶部