问题描述
Cause: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection错误代码很长:写道Caused by: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connectionat oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)at java.sql.DriverManager.getConnection(Unknown Source)at java.sql.DriverManager.getConnection(Unknown Source)at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:174)at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:165)at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149)at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:210)at $Proxy134.prepareStatement(Unknown Source)at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.ibatis.common.jdbc.logging.ConnectionLogProxy.invoke(ConnectionLogProxy.java:53)at $Proxy135.prepareStatement(Unknown Source)at com.ibatis.sqlmap.engine.execution.SqlExecutor.prepareStatement(SqlExecutor.java:497)at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:175)at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)... 100 more2011/10/17 11:27:31 DEBUG 000000000000885: null com.ustcsoft.sw.util.interceptor.AppExceptionInterceptor http-8080-2 - --- The error occurred in sql/settlement_sql.xml. --- The error occurred while executing query. --- Check the select t$bapr as price, t$ptyp as type, trim(t$item) as componentNo, t$efdt as startDate, t$exdt2 as endDate, t$poty as orderType, t$endt as inputDate, ? as supplierNo, ? as queryStartDate, ? as queryEndDate from baan.v_erp2sws_partsprice where trim(t$bfbp) = ? and (t$ptyp = '3' or t$ptyp = '4') order by t$ptyp desc, t$endt desc . --- Check the SQL Statement (preparation failed). --- Cause: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connectionpackage: settlement settlementAction: searchUsableReceiveRow
解决方案
建议你在本地装一个oracle实例,修改你的连接配置到本地,如无问题则问题出在网络上!建议你检查一下网络,这个异常表示你在获取数据库连接时失败了,你可以试着在本机 ping 一下你的数据库计算机 ping <数据库ip> -t 例如 ping 10.1.7.1 -t 看看网络是否稳定,是否有丢包的情况,如确定网络稳定,在更新oracle驱动程序,使用oracle自带的那个jdbc驱动包就可以了, 例如 D:oracle10gjdbclib下的classes12.jar 。
解决方案二:
米有链接上啊。仔细看看数据库是否启动,还有你的配置文件信息吧。问题不可怕,怕的是乱投医。
解决方案三:
错别字我手瀑布了
解决方案四:
架包,要不就是网络连接的问题,...
解决方案五:
如果oracle本身没有问题,特别是在别的机器上用sqlplus、pl/sql developer之类的都没问题,也排除了jdbc jar包版本问题,可以试试改jdbc url好象大多数人用jdbc连接oracle都这么写jdbc:oracle:thin:@ip:port:sid,你可以试试按下面的写jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=服务器地址)(PORT=1521)))(CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED)))
解决方案六:
我也遇到过这个问题,报这个错得原因是你连接数据库超时了。 先检查你的连接数据库语句是否正确,数据库服务器IP地址等配置信息是否有误。还有数据库是不是正常工作,监听是否打开。如果都不是这些问题,可能是你一次性查询大量数据,而你的网络又不稳定,就会造成这个超时异常。耐心检查一下吧
解决方案七:
没连接上oracle。这是个很常见的问题。telnet 1521端口
解决方案八:
多贴点啊,光贴个这个没法定位错误啊
解决方案九:
time out 了
解决方案十:
到oracle.com 去下载一个最新的 驱动包 试试
解决方案十一:
小杨学JAVA 写道为什么会提示telnet不是内部命令,我疯了win7的telnet默认是关闭没有安装的 XP神马的就不知道了。。。。
解决方案十二:
你ora的配置是用什么工具打开改的,直接用txt打开改编码可能会有问题,全删掉。用editplus之类的工具打开编缉链接
解决方案十三:
关掉数据库服务,再重新开一下服务,可以百度一下,关于监听器的开启需要注意的是退出SQL模式再执行sqlplus / as sysdba // 进入 sqlplus以sysdba的身份startup // 启动一个oracle实例conn/ as sysdba // 以sysdba的身份连接到orace实例quit // 退出sql模式lsnrctl start // 启动监听器 这个不能在sql模式下执行
解决方案十四:
小杨学JAVA 写道oracle不是本地的,是在另一台机器上的,有什么问题?跟你说过了,端口,防火墙!先telnet到那台机器的1521端口,看看行不行再说!
解决方案十五:
检查一下你ORACLE下的tnsnames.ora和listener.ora。改IP改机器名了?
其他方案:
就是没连上,端口,防火墙,都检查一遍。Thin driver一般和TNS没关系,除非你的URL就是用tns来连。
其他方案:
网络问题。!你网络断开了,当然掉这个错啦。明显是网络不稳定嘛。
其他方案:
jar版本的事?
其他方案:
重装。。哪
其他方案:
我也遇到过了。更新了jdbc jar 包就好了。
其他方案:
看报错信息的字面意思是网络有问题。
其他方案:
明显数据库链接的问题,看网络是否正常,看数据库是否启动和启动监听器
其他方案:
你先拿别的连接一下。比如SQL Developer 或者SQLPlus。连上多半就是你代码的问题,连不上检查配置和通信。
其他方案:
检查Oracle数据库是否运行正常,机器和数据库通信是否正常,连接参数是否正确。
其他方案:
是你TNS的问题吧