当数据库不可用时,如何防止数据库调用挂在jdbcTemplate.query中?

时间:2013-01-25 16:08:12

标签: spring jdbctemplate bonecp

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

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

1 个答案:

答案 0 :(得分:1)

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

也许这会指向你的答案:

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

祝你好运!