gpt4 book ai didi

tomcat - 如何在 SQL Anywhere 16 中限制查询运行时间

转载 作者:行者123 更新时间:2023-11-28 23:21:10 24 4
gpt4 key购买 nike

上周,我很高兴地跟踪了一个占用所有数据库资源的查询。我想要一种再次主动防止此类问题的方法。有没有一种方法可以自动防止查询运行(比方说)超过 2 分钟,并在查询速度太慢时在服务器上将其终止?

有一些方法可以在查询速度很慢时断开连接,但它们仍然让查询在服务器上运行。我相信资源调控器将是我所需要的,但我没有发现运行时或内存限制,只有游标和语句。

我们正在运行 SQL Anywhere 16 并通过 Tomcat 连接池与 sajdbc4.jar 进行连接。

最佳答案

据我所知,查询超时必须由客户端设置,不能在数据库上强制执行。幸运的是,Tomcat 7 JDBC 连接池提供了一个 QueryTimeoutInterceptor ,我现在已经实现了。它需要在连接池定义中的 server.xml 中增加一行:

jdbcInterceptors="QueryTimeoutInterceptor(queryTimeout=90);SlowQueryReport(threshhold=60000)"

这里的关键部分是QueryTimeoutInterceptor。如果我们的查询开始运行很长时间,SlowQueryReport 会警告我。还有一种将它们公开为 JMX bean 的简单方法,我没有这样做。

关于tomcat - 如何在 SQL Anywhere 16 中限制查询运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43542861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com