gpt4 book ai didi

java - 如何将 H2 DB 用于同一应用程序的多个实例

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:34 25 4
gpt4 key购买 nike

我们有一个使用 Spring Batch 框架开发的简单 Java 应用程序,用于将我们以文件形式接收的数据加载到数据库中。我们使用了 H2 数据库来存储读取/加载/失败记录的统计信息。我们遇到需要同时将多个文件加载到不同表中的情况,这意味着运行同一个 Jar 文件的多个实例。问题是,H2 数据库一次不提供多个连接,并且在运行第二个实例时反复抛出 File is locked 异常。

平台:AIX

Java 版本:1.8

H2 数据库版本:1.4.193

application.properties 中的 H2 配置

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:file:./h2/DataLoaderApp
spring.datasource.username=sa
spring.datasource.password=

我尝试了不同的解决方案,但似乎根本没有任何效果。

尝试 1:This did not work

尝试 2:附加 FILE_LOCK=NO,尽管我没有看到正在创建的 *lock.db 文件,它仍然抛出文件锁定异常。

请帮帮我,非常感谢您抽出时间。

最佳答案

查看 server-mode connection 的 H2 手册.
将连接 url 更改为 jdbc:h2:tcp://localhost/~/DataLoaderApp 并且在建立连接之前,H2db 实例必须正在运行。您可以在运行您的应用程序之前执行一个独立的 H2 实例,或者在 main 方法中启动 H2:

public static void main(String[] args) {
Server.createTcpServer().start();
SpringApplication.run(YourApplication.class, args);
}

关于java - 如何将 H2 DB 用于同一应用程序的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52453701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com