是否可以在不在IBatis中设置“timeout”属性的情况下中止执行查询?

时间:2012-09-05 10:14:47

标签: oracle11g ibatis

考虑,
查询需要一分多钟才能从数据库中检索数据(由于数据量较大) 我知道,我们可以在select标签中设置“timeout”属性(仅针对单个查询)或设置标签中的“defaultStatementTimeout”属性(SqlMapConfig.xml - 对于所有查询)以强制终止执行中的查询。

<select id='uniqueName' parameterClass='java.util.Map' resultClass = "java.lang.String" timeout="60">  

<settings useStatementNamespaces="false" defaultStatementTimeout="60"/>  

通过执行上述配置,IBatis将抛出“用户取消的请求”错误并终止执行
我们还有其他方法可以终止执行吗?

我的情景是:

当用户请求3年数据时,从数据库中获取数据需要一分多钟 与此同时,当用户请求1天的数据或发送“取消”请求时,我必须强行终止先前的执行(3年数据检索),因为即使用户数量有限,它也会影响性能。
注意
我没有使用上面的任何设置。

请为我提供解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过修改与数据库用户关联的配置文件来设置资源限制。