【发布时间】:2014-10-17 20:46:49
【问题描述】:
我在我的软件中使用 HyperSQL 数据库。当我启动 Hsqlserver 时,它运行良好。然而,在关闭它之后,它仍然保持 .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();
}
【问题讨论】:
-
在停止服务器之前尝试执行 SHUTDOWN 语句
-
谢谢...将其作为解决方案发布,我会接受。在调用 'stop()' 之前,您必须通过 'SHUTDOWN' 停止它,这仍然很奇怪。