HSQLDB:.script 文件在多个项目执行[多线程环境]并行期间自动被删除?

Posted

技术标签:

【中文标题】HSQLDB:.script 文件在多个项目执行[多线程环境]并行期间自动被删除?【英文标题】:HSQLDB : .script file is automatically getting deleted during multiple project execution[multithreaded environment] in parallel? 【发布时间】:2020-06-03 04:44:16 【问题描述】:

我在多线程 Java 环境中使用 HSQLDB 基于文件的数据库版本 2.5.0,其中许多项目可以读取/写入/更新单个数据库中的 2 个表。我们观察到,在启动项目几分钟后,保存数据的 .script 文件被自动删除并且数据被删除。以下是配置,

            Properties props = new Properties();
            props.put("user", userName);
            props.put("password", password);
            props.put("jdbc.strict_md", "false");
            props.put("jdbc.get_column_name", getColumnName);
            props.put("shutdown", "true");
            props.put("hsqldb.write_delay_millis", "0");
            props.put("hsqldb.tx", "MVCC");
            connection = DriverManager.getConnection("jdbc:hsqldb:file:" + instantURL + databaseName, props);

用户名、密码、instanceURL、数据库只是占位符,是从环境中的属性文件中读取的。任何人都可以建议,如果这里看起来不太好或需要对配置进行一些更改?如果需要更多信息,请随时询问?谢谢。

【问题讨论】:

【参考方案1】:

进程内文件:如果项目是单独的进程,则不能在“许多项目可以读取/写入/更新单个数据库中的2个表”的情况下使用数据库。

如果项目都在同一个进程中,则允许这种形式的访问。最好避开("shutdown", "true")

您可以为场景配置和启动 HSQLDB Server:http://hsqldb.org/doc/2.0/guide/listeners-chapt.html

【讨论】:

以上是关于HSQLDB:.script 文件在多个项目执行[多线程环境]并行期间自动被删除?的主要内容,如果未能解决你的问题,请参考以下文章

hsqldb 查看 test.script 文件中的数据

hsqldb *.script.new 创建和删除

HSQLDB 在检查点期间在 db.script.new 文件上抛出 Asset failed 异常和文件 io 错误

在多个线程中执行 SQL 查询 (HSQLDB)

如何让 HSQLDB 在从 .script 文件初始化数据源期间发出错误消息?

如何将多个数据库( hsqldb、mysql )与单独文件中的 DB 设置连接起来