我在我的软件中使用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();
}
答案 0 :(得分:1)
在停止服务器之前尝试执行SHUTDOWN语句