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
若是是相似圖片中的信息html
恭喜,你的問題已經查找出來,是數據庫監聽器沒未啓動而形成的。
如下是手動啓動數據庫的方法:
在運行處執行regedit進入註冊表到
開始 →運行→ regedit
按下面路徑
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome90TNSListener
找到OracleOraHome90TNSListener(我用的是Oracle9i 其餘的版本的應該是OracleOraHomexxxTNSListener)java
找到以後你會發現ImagePath關鍵值不存在了,建立它:(存在的話,點擊修改,修改方法在下文有介紹)
右鍵單擊,彈出菜單選擇新鍵(N)→字符串值(S)sql
將其命名爲ImagePath
選中ImagePath點右鍵,選中修改:數據庫
在值中輸入你的Oracle安裝目錄\ora90(其餘本對應的是oraxxx目錄)\bin\tnslsnr
若是是ORACLE 10G則安裝目錄爲F:\oracle\product\10.1.0\Db_2\BIN\tnslsnrapache
肯定後退出注冊表:
再在DOS命令下鍵入start
若是出現下面畫面,恭喜你,監聽器啓動成功:服務器
關閉DOS,啓動你的程序進行測試,應該恢復正常了。
以上就是3中常見的引起The Network Adapter could not establish the connection 異常的緣由
異常以下:
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)
)
)
oracle
文章出處:http://www.blogjava.net/onewalkingman/archive/2012/08/13/335977.html測試