Skip to content

QueryTimeout

Cheena Malhotra edited this page May 22, 2018 · 4 revisions

As of 6.1.1, the Microsoft JDBC Driver for SQL Server supports setting the query timeout via the connection string. This allows a default query timeout to be set for all queries on that connection. Below is an example of setting a default queryTimeout of 5 seconds using the connection URL.

String conURL = "jdbc:sqlserver://localhost;userName=sa;password=PASSW0RD;database=master;queryTimeout=5";
Connection con = DriverManager.getConnection(conURL);

Another way to set the default queryTimeout is using a SQLServerDataSource object.

SQLServerDataSource ds = new SQLServerDataSource();
ds.setUser("sa");  
ds.setPassword("PASSWORD");  
ds.setServerName("localhost");  
ds.setPortNumber(1433);   
ds.setDatabaseName("master");
ds.setQueryTimeout(5);
Connection con = ds.getConnection();

After either of the above methods, all Statement objects created using the connection con will be assigned a default queryTimeout of 5 seconds.

If needed, this default queryTimeout can be overridden. Below is an example of changing the queryTimeout property on a Statement from the default 5, which was set above, to the value 2.

Statement stmt = con.prepareStatement("SELECT * FROM table1");
stmt.setQueryTimeout(2);
Property Type Default Description
queryTimeout Int 0 The number of seconds to wait before a timeout has occurred on a query. The default value is 0, which means infinite timeout.
Clone this wiki locally