繁体   English   中英

JDBC挂起查询客户端恢复

[英]JDBC hung query client recovery

我正在运行Microsoft JDBC驱动程序和DBCP的组合,并看到一个查询挂起:

    ...
    at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1654) ~[sqljdbc4-3.0.jar:na]
    at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:3694) ~[sqljdbc4-3.0.jar:na]
    at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:5022) ~[sqljdbc4-3.0.jar:na]
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:388) ~[sqljdbc4-3.0.jar:na]
    ...

使用非零查询超时配置驱动程序无济于事(似乎当它从套接字读取时挂起时,它是另一种超时)。

我不想更改应用程序的套接字读取超时。

现在,我已更改为具有基于超时的强制连接收集器的C3P0池,我不太喜欢它,但是除非找到更好的选择,否则我将不得不使用它。

那么,问题有人知道这个问题和潜在的细节吗? 您认为什么是最好的处理方式?

谢谢

如果您可以直接访问java.sql.Statement,请尝试设置超时。

statement.setQueryTimeout(int seconds);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM