Io 异常: End of TNS data channel; nested exception is java.sql.SQLException: Io

本文探讨了使用DBLink连接远程数据库时出现的Io异常:EndofTNSdatachannel问题。该问题表现为在一定时间间隔后执行查询时出现错误,重启服务可以暂时解决问题,但之后仍会再次出现。通过分析SQL查询语句和异常堆栈跟踪,本文提供了可能的原因及解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


用dblink 连接的远程库,间隔一段时后执行时报下面错误Io 异常: End of TNS data channel; nested exception is java.sql.SQLException: Io 异常: End of TNS data channel
,如果重启服后务问题就消失(但间隔一段时间还会出现),如不重启每交执行还会接着报
org.springframework.dao.DataAccessResourceFailureException: StatementCallback; SQL [select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'fdlqn' type,'全年量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0)/10000 val from born_plandayear@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='90001' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'fdl1' type,'#1全年量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0)/10000 val from born_plandayear@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='10001' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'fdl2' type,'#2全年量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0)/10000 val from born_plandayear@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='20001' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'fdl3' type,'#3全年量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0)/10000 val from born_plandayear@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='30001' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'fdl4' type,'#4全年量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0)/10000 val from born_plandayear@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='40001' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'ncydl' type,'年已用量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0)/10000 val from born_plandayear@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='90193' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'nhml' type,'年耗量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0) val from born_plandayear@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='90022' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'ccmhn' type,'存量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0) val from born_plandayear@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='90134' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'ccmhr' type,'存量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0) val from born_planday@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='90134' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'rhmlr' type,'日耗量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0) val from born_planday@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='90022' union select to_char(sysdate-1,'yyyy-mm-dd') bsrq,'rfdlr' type,'日量' lb,t.plan_xh,t.plan_cdmc,nvl(t.plan_data,0)/10000 val from born_planday@sctj t where t.plan_date=to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and t.plan_xh='90001' ]; Io 异常: End of TNS data channel; nested exception is java.sql.SQLException: Io 异常: End of TNS data channel
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:253)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:406)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:455)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:463)
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:494)
at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForList(SimpleJdbcTemplate.java:234)
at com.hzj.portal.common.dao.impl.BaseDaoImpl.findMultiColumnAllList(BaseDaoImpl.java:276)
at com.inverteddata.dao.impl.AutoZbDataDAOImpl.SendValues(AutoZbDataDAOImpl.java:468)
at com.inverteddata.dao.impl.AutoZbDataDAOImpl.insertDate(AutoZbDataDAOImpl.java:432)
at com.inverteddata.service.impl.AutoZbDataServiceImpl.getZbata(AutoZbDataServiceImpl.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy80.getZbata(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:264)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.sql.SQLException: Io 异常: End of TNS data channel
at 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.T4CStatement.executeForDescribe(T4CStatement.java:806)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1031)
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1264)
at com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.java:35)
at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:440)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:395)
... 28 more


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值