【问题标题】:Can I set a JDBC timeout for a single query?我可以为单个查询设置 JDBC 超时吗?
【发布时间】:2011-07-20 19:48:31
【问题描述】:

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

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

但是,我不想将连接更改为正常请求的快速超时。

有没有办法使用原始 JDBC 或 Spring JDBC 包装器设置每个查询的超时?

【问题讨论】:

  • 对于这种场景,我建议将其设置为 1 或 2 秒,这将表明数据库拥塞。

标签: sql spring jdbc timeout jdbctemplate


【解决方案1】:

在 Statement(或 PreparedStatement)对象上使用 setQueryTimeout。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 2017-09-01
      • 1970-01-01
      • 2019-03-02
      • 2011-01-17
      • 2011-02-07
      • 1970-01-01
      • 2013-08-15
      相关资源
      最近更新 更多