【问题标题】:How do I prevent a database call from hanging in jdbcTemplate.query when the database is not available?当数据库不可用时,如何防止数据库调用挂在 jdbcTemplate.query 中?
【发布时间】:2013-02-11 23:53:43
【问题描述】:

我正在使用 Spring JDBC 模板和 BoneCP 连接池。当我故意将 JDBC URL 设置为无效值(以测试我的系统在数据库连接失败时如何工作)时,它会在服务器启动时抛出 UnknownHostException,但服务器会继续启动。当我提交请求时,jdbcTemplate.query(sql) 方法挂起。什么是处理这个问题的好方法,这样系统就不会挂在jdbcTemplate.query(sql) 中?

如果数据库由于网络连接问题而关闭,则可能出现这种情况。我尝试使用 idleMaxAgeInSecondsmaxConnectionAgeInSeconds 值;我将它们都设置为 10,但代码仍然挂在 jdbcTemplate.query() 中。

【问题讨论】:

    标签: spring jdbctemplate bonecp


    【解决方案1】:

    我不确定我是否理解您的问题,但在我看来,如果发生异常,您不希望服务器启动,或者您想设置一个静态变量,在尝试之前检查数据库是否打开联系它(初始化 jdbc 时没有 UnknownHostException)。

    也许这会指向你的答案:

    http://www.cubrid.org/blog/dev-platform/understanding-jdbc-internals-and-timeout-configuration/

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2017-06-12
      • 1970-01-01
      • 2016-03-28
      • 2014-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      相关资源
      最近更新 更多