无法从hsqldb日志文件中恢复

时间:2016-03-17 21:58:59

标签: tomcat java-ee hsqldb

我有一个基于Java / JSP / Hsqldb / Tomcat / Maven的小型Web应用程序以及Hsqldb的以下问题:

目前我还没有在应用程序中调用shutdowncheckpoint,因此提交的sql语句只会插入到 .log 文件中> HSQLDB

当我想轻松测试应用程序的更新时,我通过在tomcat的 webapps 文件夹中将war文件替换为较新的文件来实现。登录到我的Web应用程序后,数据库中显示的数据不完整/旧,因为 .log 文件中的sql语句将被忽略。 Hsqldb的文档告诉我,如果发生崩溃, .log 文件内容的重放会自动完成,但在我看来情况并非如此。

我处理此崩溃的最佳方式是什么?

  • 每隔checkpoint或至少定期调用commit
  • 使用连接参数hsqldb.full_log_replay=true
  • 还有其他想法吗?

感谢您的指导。

1 个答案:

答案 0 :(得分:1)

首先,您必须将WRITE DELAY设置为0或低值。这可确保实际记录数据更改。检查.script文件以获取当前设置。

定期调用CHECKPOINT是好的,但不是在每次提交后。

确保播放使用hsqldb.full_log_replay=true。如果打开数据库时出错,请检查.log文件。如果某些行未完全写出,则会出现错误。