我创建了一个执行此操作的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
答案 0 :(得分:0)
让我们首先提出更多问题。
问题。为Talend作业分配了多少内存?您是否在Log4j中打开了调试级别日志记录?你有最新版本的JDBC驱动程序吗?您可以在SQL工具中使用相同的驱动程序和查询吗?返回10个结果,300个结果,所有结果需要多长时间?驱动程序是否具有超时值的设置?