内存模式下的HSQLDB不会在关机时删除文件

时间:2013-05-22 14:11:41

标签: hsqldb in-memory-database

我正在使用HSQLDB 2.2.9版进行测试。 当我在内存数据库中创建命名时,调用shutdown函数后不会删除文件。在我的文件系统上,我有文件夹DBname.tmp和文件DBname.lck,DBname.log,DBname.properties和DBname.script。据我所知,文档(http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_connection_url)不应该发生。

为了测试,我使用以下代码:

import java.io.IOException;
import org.hsqldb.Server;
import org.hsqldb.persist.HsqlProperties;
import org.hsqldb.server.ServerAcl.AclFormatException;
import org.junit.Test;

public class HSQLDBInMemTest {

    @Test
    public void test() throws IOException, AclFormatException {
        HsqlProperties props = new HsqlProperties();
        props.setProperty("server.database.0", "test1");
        props.setProperty("server.dbname.0", "test1");

        props.setProperty("server.database.1", "test2");
        props.setProperty("server.dbname.1", "test2");
        Server hsqlServer = new Server();
        hsqlServer.setRestartOnShutdown(false);
        hsqlServer.setNoSystemExit(true);
        hsqlServer.setProperties(props);
        hsqlServer.start();

        hsqlServer.shutdown();
    }
}

1 个答案:

答案 0 :(得分:0)

http://sourceforge.net/mailarchive/message.php?msg_id=30881908

回答:fredt

代码应如下所示:

import java.io.IOException;
import org.hsqldb.Server;
import org.hsqldb.persist.HsqlProperties;
import org.hsqldb.server.ServerAcl.AclFormatException;
import org.junit.Test;

public class HSQLDBInMemTest {

@Test
public void test() throws IOException, AclFormatException {
    HsqlProperties props = new HsqlProperties();
    props.setProperty("server.database.0", "mem:test1");

    props.setProperty("server.database.1", "mem:test2");
    Server hsqlServer = new Server();
    hsqlServer.setRestartOnShutdown(false);
    hsqlServer.setNoSystemExit(true);
    hsqlServer.setProperties(props);
    hsqlServer.start();

    hsqlServer.shutdown();
}
}

内存数据库的路径类似于props.setProperty("server.database.0", "mem:test1");