Tôi có một shutdownhook, được thực hiện khi quá trình được chấm dứt. Tuy nhiên những thay đổi mà chương trình làm cho cơ sở dữ liệu h2 không liên tục. Chỉ khi tôi để cho thread shutdown chờ một thời gian sau khi commit, tôi sẽ thấy những thay đổi trong DB khi tôi đi lên một lần nữa.Chờ cho các chủ đề để viết các thay đổi trong shutdownhook
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");
}
}
Chỉ với sleep
, tôi sẽ thấy những thay đổi vào lần tiếp theo tôi kết nối với DB.
Có ai biết cách đợi cơ sở dữ liệu H2 kết thúc hoạt động trước khi quá trình chấm dứt không? Tôi muốn tránh số Thread.sleep()
với thời gian ngẫu nhiên ...
Cảm ơn bạn, điều đó hoạt động! Tôi hoàn toàn quên mất lệnh SHUTDOWN ... – morja