我正在使用Spring JDBC模板和BoneCP连接池。当我故意将JDBC URL设置为无效值(以测试我的系统如何在失败的数据库连接上工作)时,它会在服务器启动时抛出UnknownHostException
,但服务器会继续启动。当我提交请求时,jdbcTemplate.query(sql)
方法会挂起。处理此问题的好方法是什么,以便系统不会挂起jdbcTemplate.query(sql)
?
如果数据库由于网络连接问题而关闭,则可以使用此方案。我尝试使用idleMaxAgeInSeconds
和maxConnectionAgeInSeconds
值;我将它们都设置为10,但代码仍然在jdbcTemplate.query()
中挂起。
答案 0 :(得分:1)
我不确定我理解你的问题,但在我看来,如果发生异常,你不希望服务器启动,或者你想设置一个静态变量,在尝试之前检查数据库是否打开联系它(初始化jdbc时没有UnknownHostException)。
也许这会指向你的答案:
http://www.cubrid.org/blog/dev-platform/understanding-jdbc-internals-and-timeout-configuration/
祝你好运!