提供取消API(QueryID),即在RESTful服务中通过JDBC取消长时间运行的查询

时间:2016-06-30 11:48:15

标签: java rest jdbc

我们在互联网上浏览了几个博客,建议使用 Statement.close()方法。

我们的场景:我们开发了RESTful服务。我们通过API调用后面的JDBC框架执行SQL查询。当API请求落在我们的RESTful服务器上时,在场景后面,我们从我们维护的连接池中获取JDBC连接,并且在同一连接中,我们遵循执行Query的常规JDBC步骤。 e.g。

Connection connection;
Statement statement;
ResultSet resultSet; 
try{
   connection = connectionPool.getConnection();
   statement = (Statement) connection.createStatement();
   resultSet = statement.executeQuery(queryString);
catch(SQLException){
 // do something
}
finally{
   resultSet.close();
   statement.close();
   connection.close();
}

很少有查询需要时间来获得响应。

我们的要求:如果在一个HTTP RESTful服务中执行的查询耗费了相当长的时间,我们希望提供另一个API,使用该API可以终止长时间运行的查询,因此,后端数据存储区以及REST服务器上的资源即连接将是免费的。

我们正在寻找一种与向允许的用户公开提供Cancel(QueryID)API完全相同的方法。在另一个API调用中取消查询的持久化语句实例是正确的方法吗?

0 个答案:

没有答案