在x Records之后的Talend中的EOFException java.io.EOFException

时间:2016-03-30 11:23:32

标签: java talend

我创建了一个执行此操作的Talend作业: 从表A中读取记录x。在表A中写入记录x + 1.000.000。 这很好用,但在310条记录后失败了。 它显然与记录中的值无关。 如果我使用X&gt; = 1和X&lt; = 300更改输入查询,并且在成功运行且没有错误后,将其更改为X&gt; = 301且X&lt; = 600,则它会成功再次运行而不会出现任何错误。但是如果X> = 1且X <= 600,则在310个记录之后停止。我必须做成千上万的记录,所以每310条记录不能改变我的查询。

我试图将“提交后”改为10.000到100,10甚至1,但这没有帮助。

我该怎么办?

    java.io.EOFExceptionException in component tJDBCOutput_1
java.sql.SQLException: java.io.EOFException
    at com.kewill.jdbc.JdbcUnimsConnection.sendMessage(JdbcUnimsConnection.java:182)
    at com.kewill.jdbc.JdbcUnimsConnection.commit(JdbcUnimsConnection.java:255)
    at local_project.tsdsmd_0_1.tsdsmd.tJDBCInput_1Process(tsdsmd.java:12790)
    at local_project.tsdsmd_0_1.tsdsmd.runJobInTOS(tsdsmd.java:13237)
    at local_project.tsdsmd_0_1.tsdsmd.main(tsdsmd.java:13036)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readFully(Unknown Source)
    at com.kewill.jdbc.JdbcUnimsSocket.readFully(JdbcUnimsSocket.java:170)
    at com.kewill.jdbc.JdbcUnimsMessage.init(JdbcUnimsMessage.java:114)
    at com.kewill.jdbc.JdbcUnimsMessage.<init>(JdbcUnimsMessage.java:96)
    at com.kewill.jdbc.JdbcUnimsSocket.readMessage(JdbcUnimsSocket.java:122)
    at com.kewill.jdbc.JdbcUnimsSocket.sendMessage(JdbcUnimsSocket.java:106)
    at com.kewill.jdbc.JdbcUnimsSocket.sendMessage(JdbcUnimsSocket.java:89)
    at com.kewill.jdbc.JdbcUnimsConnection.sendMessage(JdbcUnimsConnection.java:166)
    ... 4 more

1 个答案:

答案 0 :(得分:0)

让我们首先提出更多问题。

问题。为Talend作业分配了多少内存?您是否在Log4j中打开了调试级别日志记录?你有最新版本的JDBC驱动程序吗?您可以在SQL工具中使用相同的驱动程序和查询吗?返回10个结果,300个结果,所有结果需要多长时间?驱动程序是否具有超时值的设置?