我可以在执行数据库维护时暂停DBCP吗?

时间:2016-05-09 04:39:38

标签: h2 apache-commons-dbcp

我有DBCP管理给定h2数据库的连接,在夜间需要关闭并重新启动。所花费的时间非常快,在此期间我想暂停DBCP从贷款连接,然后当我完成恢复池时。

我可以使用不同的连接池来娱乐;与c3p0和HikariCP一起使用确实会在其他地方引起问题。

我希望实现的是暂停贷款,关闭数据库,然后用新副本替换数据库文件,然后恢复池,该池应自动重启h2 db。

1 个答案:

答案 0 :(得分:0)

BoneCP可能具有在重新启动基础数据库时允许此类扩展断开连接的功能,因为它可以在连接失败时重放事务,但这意味着应用程序已编码为与事务一起运行。我自己不知道这个功能,但0.6.5发行说明说明了浮动

  

主要功能是自动重放事务,从而保存事务上的所有活动(从BEGIN TRANSACTION到COMMIT / ROLLBACK)。如果发生可恢复的异常,例如,如果数据库出现故障或网络出现故障,则池将自动回放所有事务,让您的应用程序正常自动恢复。

否则,最好的选择是将连接管理移至应用程序代码,以便在连接最终被报告为已损坏时,应用程序可以暂停并在错误输出之前重试。