Kettle表输出报关闭的连接问题的解决方法


最近在使用Kettle的时候表输出有时候会报一个错误 关闭的连接在网上查了半天都没有找到解决办法 
现在记录一下解决过程以备后用。

1.软件环境

-Oracle 11g R2  RAC
-Kettle 6.0.1.0
-JDK 1.68 
-Oracle Driver OJDBC14.jar
2.报错如下
2016/06/23 16:53:30 - 表输出 2.0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : Because of an error, this step can't continue:
2016/06/23 16:53:30 - 表输出 2.0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2016/06/23 16:53:30 - 表输出 2.0 - Error performing rollback on connection
2016/06/23 16:53:30 - 表输出 2.0 - 无法从套接字读取更多的数据
2016/06/23 16:53:30 - 表输出 2.0 - 
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:847)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:825)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:332)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.processRow(TableOutput.java:118)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2016/06/23 16:53:30 - 表输出 2.0 - at java.lang.Thread.run(Unknown Source)
2016/06/23 16:53:30 - 表输出 2.0 - Caused by: java.sql.SQLException: 无法从套接字读取更多的数据
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1118)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1070)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:106)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:567)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1145)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:838)
2016/06/23 16:53:30 - 表输出 2.0 - ... 5 more
2016/06/23 16:53:30 - 表输入 2.0 - Finished reading query, closing connection.
2016/06/23 16:53:30 - 表输入 2.0 - 完成处理 (I=193511, O=0, R=0, W=193509, U=0, E=0
2016/06/23 16:53:30 - 表输出 2.0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : Unexpected error committing the database connection.
2016/06/23 16:53:30 - 表输出 2.0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2016/06/23 16:53:30 - 表输出 2.0 - Error comitting connection
2016/06/23 16:53:30 - 表输出 2.0 - Io 异常: Software caused connection abort: socket write error
2016/06/23 16:53:30 - 表输出 2.0 - 
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.commit(Database.java:766)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.commit(Database.java:738)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.emptyAndCommit(Database.java:1349)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.dispose(TableOutput.java:575)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:96)
2016/06/23 16:53:30 - 表输出 2.0 - at java.lang.Thread.run(Unknown Source)
2016/06/23 16:53:30 - 表输出 2.0 - Caused by: java.sql.SQLException: Io 异常: Software caused connection abort: socket write error
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:533)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:1128)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.commit(Database.java:757)
2016/06/23 16:53:30 - 表输出 2.0 - ... 5 more
2016/06/23 16:53:30 - 表输出 2.0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2016/06/23 16:53:30 - 表输出 2.0 - Error comitting connection
2016/06/23 16:53:30 - 表输出 2.0 - Io 异常: Software caused connection abort: socket write error
2016/06/23 16:53:30 - 表输出 2.0 - 
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.commit(Database.java:766)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.commit(Database.java:738)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.emptyAndCommit(Database.java:1349)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.dispose(TableOutput.java:575)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:96)
2016/06/23 16:53:30 - 表输出 2.0 - at java.lang.Thread.run(Unknown Source)
2016/06/23 16:53:30 - 表输出 2.0 - Caused by: java.sql.SQLException: Io 异常: Software caused connection abort: socket write error
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:533)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:1128)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.commit(Database.java:757)
2016/06/23 16:53:30 - 表输出 2.0 - ... 5 more
2016/06/23 16:53:30 - 表输出 2.0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : Unexpected error rolling back the database connection.
2016/06/23 16:53:30 - 表输出 2.0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2016/06/23 16:53:30 - 表输出 2.0 - Error performing rollback on connection
2016/06/23 16:53:30 - 表输出 2.0 - 关闭的连接
2016/06/23 16:53:30 - 表输出 2.0 - 
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:847)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:825)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.dispose(TableOutput.java:610)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:96)
2016/06/23 16:53:30 - 表输出 2.0 - at java.lang.Thread.run(Unknown Source)
2016/06/23 16:53:30 - 表输出 2.0 - Caused by: java.sql.SQLException: 关闭的连接
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
2016/06/23 16:53:30 - 表输出 2.0 - at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1142)
2016/06/23 16:53:30 - 表输出 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:838)
2016/06/23 16:53:30 - 表输出 2.0 - ... 4 more
2016/06/23 16:53:30 - 表输出 2.0 - 完成处理 (I=0, O=192000, R=193000, W=192000, U=0, E=1

3.解决方案

通过以上的分析可以推断程序应该不会有问题。那只有这样几种可能了

-1、网络不稳定 
-2、Oracle 连接资源耗尽 
-3、Oracle驱动有问题 
通过排除第一种和第二种问题,最后看了一下使用的Oracle驱动版本为OJDBC14.jar确实有点老了。在Oracle的Home目录下面找到JDBC目录然后将OJDBC6.jar更换原来的驱动。 


测试,问题被解决。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26129555/viewspace-2120931/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26129555/viewspace-2120931/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值