当前位置: 首页 > 面试题库 >

我可以为单个查询设置JDBC超时吗?

白星腾
2023-03-14
问题内容

我在Tomcat上有一个Web应用程序,该应用程序处理数据库连接池,并使用Spring
JDBCTemplate执行查询。有人要求我实现一个状态页面,该页面将由心跳过程进行监视,以确定服务器是否一切正常。

作为此操作的一部分,我想执行一个数据库查询以确定与数据库的连接是否正常。理想情况下,由于它只是“从中选择1”,因此我希望它能在10秒内快速返回,以指示如果DB在那段时间内没有响应,则会失败。

但是,对于正常的请求,我不想更改连接以使其快速超时。

有没有一种方法可以使用原始JDBC或Spring JDBC包装器设置每个查询的超时时间?


问题答案:

如果您使用Spring管理事务,那么也可以在事务级别指定超时。@Transactional(超时= 10)



 类似资料:
  • 我正在使用Spring框架。使用NamedParameterJdbcTemplate时,如何设置查询超时?我注意到JdbcTemplate有一个setQueryTimeout(int queryTimeout)方法,但我还没有找到一种使用NamedParameterJdbcTemplate实现这一点的方法。它有一个getJdbcOperations()方法,但似乎没有公开setQueryTimeo

  • 问题内容: 在我的Web应用程序中,一些postgres sql查询需要一些时间才能执行。我只想为其中一部分设置语句超时。 查询的一部分必须通过超时取消,但是其他部分必须可以不受任何限制地工作。 在postgres中存在statement_timeout函数。 如何使用statement_timeout函数包装SqlAlchemy查询? 像这样: 对我来说,设置超时的最佳方法是这样的: SqlAl

  • 问题内容: 在JDBC中,我可以对查询参数使用问号,如下所示: 然后 但是如何查询登录列表: 假设我有 我应该在那输入什么: 我可以将查询重写为: 然后在循环中调用setString,但我想知道是否可以将一组元素作为单个参数传递给查询。 也许有特定于供应商的扩展? 问题答案: 有特定于供应商的方法可以执行此操作,因此最好了解您使用的数据库。我知道PostgreSQL和H2的解决方案。我在H2数据库

  • 问题内容: 我正在尝试对Spring 3.1 的批注支持,并且想知道是否有任何方法可以通过设置TTL在一段时间后清除缓存的数据?现在,从我看到的内容中,我需要使用和自己清除它,并与我一起使用可以实现TTL实现,但是对于这样一个简单的任务来说似乎有点多了吗? 问题答案: 参见http://static.springsource.org/spring/docs/3.1.x/spring-framewo

  • 问题内容: 我想降低spring-mongo java应用程序中的超时设置(如果无法访问数据库,则查询将在300 ms后失败)。 我尝试了这个配置: 但是mongoUri选项或构建器都更改超时:仅在30 000ms之后查询失败。 我不确定应该覆盖哪个参数,也不确定该如何正确执行。 谢谢你的帮助 问题答案: 我在这里找到了答案:https : //scalegrid.io/blog/understa

  • 如何在应用程序级别配置默认查询超时。我使用spring、hibernate和db2作为后端。在datasource级别设置超时不是一个选项,因为我们使用的是旧版本的IBM WebSphere。我尝试在事务管理器中配置defaultTimeout,但这没有帮助。我也不想集成c3p0连接池。hibernate是否为在应用程序级别设置全局查询超时提供了其他选项,如果是,如何配置。