2016-05-09 29 views
0

我有DBCP管理一个给定的h2数据库的连接,在晚上需要关闭并重新启动。所花费的时间非常快,在此期间,我想暂停DBCP借用连接,然后在完成时恢复池。执行数据库维护时可以暂停DBCP吗?

虽然我可以使用不同的连接池进行娱乐,与c3p0和HikariCP一起使用确实会在别处造成问题。

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

回答

0

BoneCP可能具有允许此类型的扩展断开连接而底层数据库重新启动的功能,因为它可以在连接失败时重放事务,但这意味着应用程序已被编码为与事务一起操作。我不知道自己的功能,但0.6.5版本注释写明floowing

主要特点是交易从而在一个交易的所有活动(从BEGIN TRANSACTION提交/回滚)的自动重播被保存。如果发生可恢复的异常,例如,如果数据库发生故障或网络出现故障,池将自动回放所有事务,让您的应用程序正常自动恢复。

否则,最好的选择是将连接管理上移到应用程序代码,以便当连接最终被报告为中断时,应用程序可以在出错前暂停并重试。