База данных H2 закрыта, даже если DB_CLOSE_ON_EXIT ложно - PullRequest
0 голосов
/ 04 августа 2020

Я хочу сделать резервную копию базы данных, когда 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?

...