异常: The Network Adapter could not establish the connection

Io 异常: The Network Adapter could not establish the connection
这个异常的出现一般与数据库 设置 和你的计算机的设置 有关,一般程序逻辑是没有问题的。


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

 

1、oracle配置

oracle9i2中把C:\oracle\ora92\network\admin 目录下的listener.oratnsnames.ora 文件中的HOST改为:HOST   =   127.0.0.1 。如下(玫红色标记为需要修改处):

(注意:连接远程计算机中oracle数据库的配置中的host不可修改。)

File:   C:\oracle\ora92\network\admin\listener.ora


LISTENER   =
    (DESCRIPTION_LIST   =
        (DESCRIPTION   =
            (ADDRESS_LIST   =
                (ADDRESS   =   (PROTOCOL   =   IPC)(KEY   =   EXTPROC0))
            )
            (ADDRESS_LIST   =
                (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   127.0.0.1 )(PORT   =   1521))
            )
        )
    )

SID_LIST_LISTENER   =
    (SID_LIST   =
        (SID_DESC   =
            (SID_NAME   =   PLSExtProc)
            (ORACLE_HOME   =   C:\oracle\ora92)
            (PROGRAM   =   extproc)
        )
        (SID_DESC   =
            (GLOBAL_DBNAME   =   tfpc)
            (ORACLE_HOME   =   C:\oracle\ora92)
            (SID_NAME   =   tfpc)
        )
    )

**********************
File:   C:\oracle\ora92\network\admin\tnsnames.ora

TFPC   =
    (DESCRIPTION   =
        (ADDRESS_LIST   =
            (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   127.0.0.1 )(PORT   =   1521))
        )
        (CONNECT_DATA   =
            (SERVER   =   DEDICATED)
            (SERVICE_NAME   =   tfpc)
        )
    )

INST1_HTTP   =
    (DESCRIPTION   =
        (ADDRESS_LIST   =
            (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   127.0.0.1 )(PORT   =   1521))
        )
        (CONNECT_DATA   =
            (SERVER   =   SHARED)
            (SERVICE_NAME   =   MODOSE)
            (PRESENTATION   =   http://HRService)
        )
    )

EXTPROC_CONNECTION_DATA   =
    (DESCRIPTION   =
        (ADDRESS_LIST   =
            (ADDRESS   =   (PROTOCOL   =   IPC)(KEY   =   EXTPROC0))
        )
        (CONNECT_DATA   =
            (SID   =   PLSExtProc)
            (PRESENTATION   =   RO)
        )
    )


2、IP错误
在设置URL时错误,例如:jdbc:oracle:thin:@192.168.0.36:1521:sharp
数据库服务器不正确:ping 服务器IP是否正确。不正确,将URL更改为正确
端口号错误:一般不会错误。
进行一下操作:在DOS上键入sqlplus,检查oracle是否开启
一却正常,执行下面第3步。

 

3、防火墙
如果机器上安装有放火墙,可能是服务器端口号屏蔽而造成的。关闭防火墙后,尝试重新连接。
仍然不行,执行第4步。

 

4、数据库监听未启动 修改PC上注册表中的ImagePath值
下面以现在主流的数据库ORACLE为例,重新手动启动数据库监听:
3.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

 

 

确定后退出注册表:
再在DOS命令下键入start
如果出现下面画面,恭喜你,监听器启动成功:

 

 

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


 

你可能感兴趣的:(开发语言-java,Oracle,DOS,防火墙,C,C++)