java.sql.SQLException:JZ006:capture IOException:java.net.SocketTimeoutException:Read timed out使用getCause()查看错误链

java.sql.SQLException:JZ006:capture IOException:java.net.SocketTimeoutException:Read timed out使用getCause()查看错误链,java,jdbc,sybase,Java,Jdbc,Sybase,我们正在使用Java编写的第三方工具屏蔽Sybase数据库。在屏蔽Sybase数据库的表时,我间歇性地遇到以下错误。如果我只是重新执行批处理,它工作得很好,因此很难复制 2020-01-09 04:41:55.657 Thread:Table Name - Error executing select statement for update 2020-01-09 04:41:55.657 Error Executing Batch java.sql.SQLException: JZ006:

我们正在使用Java编写的第三方工具屏蔽Sybase数据库。在屏蔽Sybase数据库的表时,我间歇性地遇到以下错误。如果我只是重新执行批处理,它工作得很好,因此很难复制

2020-01-09 04:41:55.657 Thread:Table Name - Error executing select statement for update 
2020-01-09 04:41:55.657 Error Executing Batch 
java.sql.SQLException: JZ006: Caught IOException: java.net.SocketTimeoutException: Read timed 
out use getCause() to see the error chain
at com.sybase.jdbc4.jdbc.ErrorMessage.raiseError(ErrorMessage.java:829)
at com.sybase.jdbc4.jdbc.ErrorMessage.raiseErrorCheckDead(ErrorMessage.java:1141)
at com.sybase.jdbc4.tds.Tds.handleIOE(Tds.java:5186)
at com.sybase.jdbc4.tds.Tds.handleIOE(Tds.java:5131)
at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:2921)
at com.sybase.jdbc4.tds.TdsCursor.fetch(TdsCursor.java:422)
at com.sybase.jdbc4.tds.TdsCursor.fetch(TdsCursor.java:351)
at com.sybase.jdbc4.jdbc.SybCursorResultSet.next(SybCursorResultSet.java:187)
at com.grid_tools.products.datamasker.SQLUpdate.batchPreparedMasking(SQLUpdate.java:2706)
at com.grid_tools.products.datamasker.SQLUpdate.run(SQLUpdate.java:5717)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at com.sybase.jdbc4.timedio.RawDbio.reallyRead(RawDbio.java:322)
at com.sybase.jdbc4.timedio.Dbio.doRead(Dbio.java:253)
at com.sybase.jdbc4.timedio.InStreamMgr.readIfOwner(InStreamMgr.java:583)
at com.sybase.jdbc4.timedio.InStreamMgr.doRead(InStreamMgr.java:319)
at com.sybase.jdbc4.tds.TdsProtocolContext.getChunk(TdsProtocolContext.java:622)
at com.sybase.jdbc4.tds.PduInputFormatter.readPacket(PduInputFormatter.java:239)
at com.sybase.jdbc4.tds.PduInputFormatter.read(PduInputFormatter.java:72)
at com.sybase.jdbc4.tds.TdsInputStream.read(TdsInputStream.java:91)
at com.sybase.jdbc4.tds.TdsInputStream.readUnsignedByte(TdsInputStream.java:124)
at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:2879)
WHERE "row_id" = ? 

这是因为你们那边的网络问题。。可能您的internet在那里不可用。

java.net.SocketTimeoutException:读取超时,可能服务器尚未发送数据,您的读取超时配置太紧,或者您的网络连接有问题。重复到网络连接没有问题。。。如何检查当前配置的读取超时值?请查看Sybase JDBC文档。我自己不使用Sybase,所以我不知道它的JDBC驱动程序的细节。我喜欢它。我笑了。