mor*_*rja 6 java h2 shutdown-hook
我有一个shutdownhook,它在进程终止时执行.但是,程序对h2数据库所做的更改不是持久的.只有当我在提交后让关闭线程等待一段时间后,当我再次启动时,我将看到数据库中的更改.
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
// H2 db add row, commit and close
Thread.sleep(1000); // in try/catch
System.out.println("Shutdown complete");
}
}
Run Code Online (Sandbox Code Playgroud)
只有a sleep,我会在下次连接到DB时看到更改.
有没有人知道在进程终止之前如何等待H2数据库完成操作?我希望Thread.sleep()随机时间避免...
您可以使用该SHUTDOWN命令在关闭应用程序之前正确刷新对磁盘的所有写入.
另一种解决方案是调用CHECKPOINT SYNC你的关闭钩子(但在关闭所有连接之前).这不会"关闭"数据库,无论如何,当最后一个连接关闭时,应该自动完成.
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |