HyperSQL在停止后保持文件锁定

时间:2014-10-17 12:22:00

标签: java hsqldb

我在我的软件中使用HyperSQL数据库。当我启动Hsqlserver isntance时,它完美地工作。但是在关闭它之后,它仍然会锁定.lck和.log文件。当我杀死我的java进程时,文件被解锁。关于如何在不杀死我的java进程的情况下关闭HSQLServer的任何建议?

开始的代码:

hsqlServer = new Server();
hsqlServer.setLogWriter(null);
hsqlServer.setSilent(true);
hsqlServer.setDaemon(true);

hsqlServer.setDatabaseName(0, "test");
hsqlServer.setDatabasePath(0, "file:" + path);

hsqlServer.start();

// Block till database is online
while (hsqlServer.getState() != 1) {
    try {
        Thread.sleep(100);
    } catch (InterruptedException e) {
            e.printStackTrace();
    }
}

要停止的代码:

hsqlServer.stop();

// Block till its stopped
try {
    hsqlServer.getServerThread().join();
} catch (InterruptedException e) {
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:1)

在停止服务器之前尝试执行SHUTDOWN语句