У меня есть 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");
}
}
Только с sleep
я увижу изменения в следующемвремя подключения к БД.
Кто-нибудь знает, как ждать, пока база данных H2 завершит операцию, прежде чем процесс завершится?Я хочу избежать Thread.sleep()
со случайным временем ...