首页 > 解决方案 > eXist-db 不同服务器之间的内容同步问题

问题描述

有两个 eXist-db 服务器。一个是主人,一个是奴隶。我知道我们可以在它们同时运行时使用 ActiveMQ 复制内容(我完成了这项工作)。但我想知道有没有办法手动复制内容?就像在 B 服务器启动时从 A 服务器同步内容一样。实际上,它们是两台服务器中的同一个文件夹。collection.xconf 如下。

<collection xmlns="http://exist-db.org/collection-config/1.0">
    <triggers>
        <trigger class="org.exist.jms.replication.publish.ReplicationTrigger">
            <!-- 
                Class name of the initial context provider, default value 
                for ActiveMQ
                see javax.naming.Context#INITIAL_CONTEXT_FACTORY
            -->
            <parameter name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
            <!-- 
                URL of the message broker, default value for ActiveMQ 
                see javax.naming.Context#PROVIDER_URL
            --> 
            <parameter name="java.naming.provider.url" value="tcp://localhost:61616"/>
            <!-- 
                Lookup connection factory
                see javax.naming.InitialContext#lookup(String) 
            -->
            <parameter name="connection-factory" value="ConnectionFactory"/>
            <!--
                Lookup destination (topic)
                see javax.naming.InitialContext#lookup(String) 
            -->
            <parameter name="destination" value="dynamicTopics/eXistdb-replication-example"/>
        </trigger>
        <trigger event="update" class="org.exist.collections.triggers.XQueryTrigger">
            <parameter name="url" value="xmldb:exist:///db/triggerUpdate.xql"/>
        </trigger>
    </triggers>
</collection>

标签: synchronizationxqueryexist-db

解决方案


扩展实际上有这个sync($doc)功能,你可以使用这个功能将一个资源发送到代理。我将很快将有关此的文档添加到 wiki。

这提醒我需要尽快发布一些小修复......


推荐阅读