您的位置:首页 > 其它

Io 异常: The Network Adapter could not establish the connection

2012-03-28 16:44 567 查看
Io 异常: The Network Adapter could not establish the connection

这个异常的出现一般与数据库和你的PC的设置有关

这种异常的出现大致上有下面几种:

1。IP错误。

在设置URL时错误,例如:jdbc:oracle:thin:@192.168.0.36:1521:sharp

数据库服务器不正确:ping 服务器IP是否正确。不正确,将URL更改为正确

端口号错误:一般不会错误。

进行一下操作:在DOS上键入sqlplus,检查oracle是否开启

一却正常,执行下面第2步。

2。防火墙

如果机器上安装有放火墙,可能是服务器端口号屏蔽而造成的。关闭防火墙后,尝试重新连接。

仍然不行,执行第3步。

3。数据库监听未启动 修改PC上注册表中的ImagePath值。

我下面以现在主流的数据库ORACLE为例

重新手动启动数据库监听:

1:开始 → 运行→ 输入CMD→ 进入DOS命令提示界面

d:>lsnrctl

LSNRCTL> status

或者

LSNRCTL> start

如果是类似图片中的信息





恭喜,你的问题已经查找出来,是数据库监听器没未启动而造成的。

以下是手动启动数据库的方法:

在运行处执行regedit进入注册表到

开始 →运行→ regedit

按下面路径

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome90TNSListener

找到OracleOraHome90TNSListener(我用的是Oracle9i 其他的版本的应该是OracleOraHomexxxTNSListener)







找到之后你会发现ImagePath关键值不存在了,创建它:(存在的话,点击修改,修改方法在下文有介绍)

右键单击,弹出菜单选择新键(N)→字符串值(S)



将其命名为ImagePath

选中ImagePath点右键,选中修改:



在值中输入你的Oracle安装目录\ora90(其他本对应的是oraxxx目录)\bin\tnslsnr

如果是ORACLE 10G则安装目录为F:\oracle\product\10.1.0\Db_2\BIN\tnslsnr





确定后退出注册表:

再在DOS命令下键入start

如果出现下面画面,恭喜你,监听器启动成功:



关闭DOS,启动你的程序进行测试,应该恢复正常了。

以上就是3中常见的引发The Network Adapter could not establish the connection 异常的原因

文章出处:DIY部落(http://www.diybl.com/course/3_program/java/javashl/20071126/87790.html)

异常如下:

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io 异常: The Network Adapter could not establish the connection)

at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)

at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)

Caused by: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)

主要原因:

1.可能是server.xml文件的DataSource配置出错。

(1).如果用到的是本机上的数据,本地数据源里的部分配置为: username="pcisv62" password="11" url="jdbc:oracle:thin:@localhost:1521:orcl"

(2).如果用到的是服务器上的数据,则数据源里的部分配置为: username="pcisv62" password="11" url="jdbc:oracle:thin:@dbserver:1521:corev6"

(dbserver为服务器的名字,corev6为服务器上Oracle的SID)

2.可能是oracle的tnsnames.ora文件配置出错。

oracle的安装目录E:\oracle\ora92\network\admin下的tnsnames.ora:

本地配置:

ORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 主机名)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ORCL)

)

)

或服务器配置:

COREV6_DBSERVER =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))

)

(CONNECT_DATA =

(SID = COREV6)

(SERVER = DEDICATED)

)

)

关于 The Network Adapter could not establish the connection 异常的一点说明:

在实际中碰到 通过pl/sql developer去连很正常。

通过eclipse附带的数据库插件去连也完全正常,且采用的同样是thin:jdbc的方式,连用的包都是完全一样的 就是扔到tomcat地下跑的时候 就抛无法连接的异常 查看相关配置文件包括oracle的都觉得没问题 重启oracle也无法解决

后来无意中看到网上某位仁兄提到,可以重建oracle的监听来解决 试了一把 确实可行。。。。

胡乱修改下oracle的监听配置文件 重启下oracle 然后修改回原来的配置 重启oracle。。居然一切正常。。。。。奔溃中。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐