HsqlDB:重新加载 server.properties
Posted
技术标签:
【中文标题】HsqlDB:重新加载 server.properties【英文标题】:HsqlDB: Reloading 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
我发现文档中没有提到这些“问题”。 我哪里做错了?
谢谢
【问题讨论】:
【参考方案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 文件中的别名了。
【讨论】:
以上是关于HsqlDB:重新加载 server.properties的主要内容,如果未能解决你的问题,请参考以下文章