存在数据库:标识数据库服务器



我们有许多(开发人员(existDb数据库服务器,以及一些暂存/生产服务器。

每个都有自己的配置,略有不同。

我们需要选择要在查询中加载和使用哪种配置。

配置将存储在存储库中的 XML 文件中。

但是,在同步服务器的内容时,单个刻录的 XML 文件是不够的,因为在从其他服务器复制期间会覆盖该文件。

为此,我们需要实际数据库服务器的物理名称。

找到的唯一功能request:get-server-name不太稳定,因为可以通过许多不同的(本地主机,内部网或外部(URL访问单个eXist服务器。但是,这会导致不必要的配置重复,每个外部 URL 一个...

(访问文件系统中的某些本地文件不安全且速度不快。

如何从XQuery获取现有Db服务器的物理名称?

很抱歉,但我不完全理解您的问题,您是在谈论存在的默认 conf.xml还是您需要存储在 VCS 存储库中的您自己的配置文件?xquery 应该在一个实例上执行并在所有其他实例中触发事件,还是只在某个实例上触发事件,或者......?如果没有一些代码,很难看出为什么以及何时覆盖某些内容。

你可以尝试控制台:jmx-token,它不会因URL而异(至少不应该(

此外,您可能会发现使用基于 docker 的方法要容易得多。要么通过 docker-compose 协调多个实例,要么防止各个配置在从开发移动到暂存再到生产 https://github.com/duncdrum/exist-docker 时不会相互干扰

如果我理解正确,您基本上希望能够从XQuery获取服务器的主机名或IP地址。如果 XQuery 请求模块中的函数没有按照您希望的方式执行,那么另一种选择是在启动 eXist-db 时设置 Java 系统属性。此系统属性可以是服务器的内部 DNS 名称或 IP,例如:-Dour-server-name=server1.mydomain.com

然后,从 XQuery 中,您可以使用util:system-property("our-server-name")读取该 Java System 属性。

相关内容

  • 没有找到相关文章