JDBC setQueryTimeout not working?

2019-08-04 01:51发布

问题:

I'm querying MSSQL 2008 server thourgh JAVA, using the JDBC driver. I do something like this:

PreparedStatement stmt = ...;
...
stmt.setQueryTimeout(60);
stmt.executeQuery();

I see that when there's a load on the SQL server, the statement doesn't get cancelled even though the timeout has passed.

Does anyone have a clue about this?

Thanks.

回答1:

  • The timing for setQueryTimeout is not precise at all
  • The exception relies on the server acknowledging the cancel command

So, YMMV unfortunately...

References: (can't find anything better, sorry)

  • http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/06bea9b9-78cb-4d1b-8c12-5f06ed991cac/
  • http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server-jdbc/1017/setQueryTimeout-not-work