【问题标题】:Embed H2 Database into ETL Application?将 H2 数据库嵌入 ETL 应用程序?
【发布时间】:2017-07-03 11:49:42
【问题描述】:

我正在寻找一种通过 java / 命令任务以编程方式启动 H2 数据库服务的方法。

对于 Windows:我可以使用以下命令启动服务

java -jar C:/H2/h2/bin/h2-1.4.195.jar -tcpAllowOthers

来自 Java 应用程序,如下所述:Start H2 database programmatically

注意:我使用了简单的 H2-DBManager 方法。

在这两种情况下,我都看到应用程序继续运行。

我的期望是:我需要一种以编程方式启动 H2 数据库并使其作为后台进程运行并进入下一步的方法。

另外,我正在寻找一种将 postgres 数据库嵌入我的 ETL 应用程序并以编程方式启动它的方法。

【问题讨论】:

  • 每个问题只有一个问题。为 H2 执行此操作与为 Postgres 执行此操作(不可用作“嵌入式”数据库)
  • H2 是高优先级。
  • 所以,您找到了代码和命令。你知道你想要什么。你有什么问题?
  • 我的问题是,一旦我使用命令或通过 java 触发了 h2 数据库的启动,我希望数据库服务在后台启动。假设如果我通过命令提示符触发命令,它仍然是相同的命令,如图像:ibb.co/nifAQF。它应该在后台运行并允许我们在同一窗口中键入其他命令。

标签: java h2 talend


【解决方案1】:

如果您在 Windows 上使用命令行,请尝试在命令开头添加 START:

START "" java -jar C:/H2/h2/bin/h2-1.4.195.jar -tcpAllowOthers

在 Linux 上添加 &

java -jar C:/H2/h2/bin/h2-1.4.195.jar -tcpAllowOthers &

【讨论】:

  • 如何以编程方式启动H2数据库,一旦触发启动命令,需要切换到下一步。它不应该挂在那里......
  • 对不起,我没听懂。什么挂了?
  • Hangs 表示 java 程序仍处于执行状态,如图ibb.co/cOZ3fF 所示。一旦执行,我希望这个 java 程序进入完成状态..
  • 好的,这是一个不同的要求。所以你想在后台启动它,让它运行并用你的 ETL 作业结束后台 h2 进程。我不确定我提供的解决方案在这种情况下是否会对您有所帮助,因为 START 命令只是确保将在后台执行命令。我认为有一个start_service.cmd 文件,也许使用它然后调用stop_service.cmd
【解决方案2】:

您可以在 Talend 中通过 tSystem 组件编写这些命令并通过运行 talend 作业来执行命令。 如果您的 Job server 或 Talend Studio 安装在 Windows 上,那么。

START "" java -jar C:/H2/h2/bin/h2-1.4.195.jar -tcpAllowOthers

如果在 Linux 上安装了 Job Server 或 Talend Studio,则

java -jar C:/H2/h2/bin/h2-1.4.195.jar -tcpAllowOthers &

【讨论】:

    猜你喜欢
    • 2017-09-27
    • 1970-01-01
    • 2022-01-20
    • 2017-03-05
    • 1970-01-01
    • 2010-09-14
    • 2020-06-14
    • 1970-01-01
    • 2016-01-22
    相关资源
    最近更新 更多