【问题标题】:HsqlDB: Reloading server.propertiesHsqlDB:重新加载 server.properties
【发布时间】:2014-08-23 13:38:50
【问题描述】:

我有一个 HsqlDB 服务器正在运行,我需要动态地将 db 别名添加到 server.properties 文件中,而无需重新启动 db 服务器。是否可以?还是我需要关闭并重新启动整个 HsqlDB 服务器?

情况是我有一个 HsqlDB 服务器,其中包含许多数据库和许多 Java Web 应用程序,每个应用程序都使用自己的数据库。到目前为止,如果不重新启动整个 HsqlDB 服务器,我就无法创建 Web 应用程序的新实例。

我尝试使用以下 JDBC 网址:

jdbc:hsqldb:hsql://localhost;file:/srv/databases/db1
jdbc:hsqldb:hsql://localhost;file:/srv/databases/db2
etc...

但在这种情况下,所有 webapp 都连接到同一个数据库(即第一个连接的数据库)。我想在应用中使用:

jdbc:hsqldb:hsql://localhost/db1
jdbc:hsqldb:hsql://localhost/db2

我发现文档中没有提到这些“问题”。 我哪里做错了?

谢谢

【问题讨论】:

    标签: java jdbc hsqldb


    【解决方案1】:

    您需要使用 server.remote_open=true 属性启动服务器。之后,需要包含 URL 以及文件路径。

    指南中举例说明:

    http://hsqldb.org/doc/2.0/guide/listeners-chapt.html#lsc_remote_open

    【讨论】:

    • 谢谢。但实际上我做到了。我的 server.properties 文件以 server.remote_open=true 开头。事实上,我可以远程打开一个数据库,但是当我尝试远程打开第二个数据库时,我获得了与第一个数据库的连接。
    【解决方案2】:

    已解决:如果我使用以下 URL 连接:

    jdbc:hsqldb:hsql://localhost/databasea;file:/srv/databases/databasea

    jdbc:hsqldb:hsql://localhost/databaseb;file:/srv/databases/databaseb

    那么这两个连接实际上连接到两个数据库。 我的问题是我对两者都使用了相同的别名(//localhost)。 现在我不需要 server.properties 文件中的别名了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多