I'm using java 1.7 on Windows with jtds-1.3.1, this is the connection String: "jdbc:jtds:sqlserver://foo:1433/bar;useCursors=true;autoCommit=false" Then I do this: Connection conn = DriverManager.getConnection(connectionUrl); conn.setAutoCommit(false); Statement st = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); st.setFetchSize(50); ResultSet rs = st.executeQuery("select * from large_table"); The code hangs on executeQuery...whereas if I use "select top 150 from large_table"...