Я хочу сделать резервную копию базы данных, когда JVM перестанет работать. Поэтому я добавил ловушку выключения:
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
... some code that does backup
}));
Я пробовал DB_CLOSE_ON_EXIT
в jdb c url, но это не дало результата: /
"jdbc:h2:db;DB_CLOSE_ON_EXIT=FALSE";
Я также пытался настроить эту опцию через hikari config:
static HikariConfig getConfig() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl(jdbcUri);
config.setAutoCommit(true);
config.setUsername("sa");
config.setPassword("sa");
config.addDataSourceProperty("AUTO_SERVER", "TRUE");
config.addDataSourceProperty("DB_CLOSE_ON_EXIT", "FALSE");
config.setInitializationFailTimeout(0);
config.setConnectionTimeout(3000);
return config;
}
Я получаю ту же ошибку:
org.h2.jdb c .JdbcSQLNonTransientConnectionException: База данных уже закрыта (чтобы отключить автоматизацию c закрытие при выключении ВМ добавьте "; DB_CLOSE_ON_EXIT = FALSE" к URL-адресу базы данных) [90121-200]
Может не работает с AUTO_SERVER
?