首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混合模式下基于H2数据库的野兔聚类

混合模式下基于H2数据库的野兔聚类
EN

Stack Overflow用户
提问于 2016-07-27 09:46:51
回答 1查看 771关注 0票数 2

我有一个Magnolia CMS系统,我尝试为一个包含用户生成内容的工作区配置一个集群存储库。我们将有一个作者和一个公共实例,每个实例都有一个专用的MYSQL数据库,用于木兰默认存储库。用户生成的内容应该存储在将位于共享目录中的h2数据库中。我们不能在服务器模式下直接启动h2数据库,因此,到h2数据库的连接将配置为混合模式和标志AUTO_SERVER=true (参见模式)。

存储库的初始化是完美无缺的。一旦数据存储在集群存储库中,下一次重新启动将在集群存储库的加载阶段停止/挂起(请参阅日志)。

我错过配置了吗?甚至可以在混合模式下使用h2来进行野兔集群吗?

repository.xml:

代码语言:javascript
复制
<JCR>
    <RepositoryMapping>
        <Map name="userGeneratedContent" repositoryName="magnoliacluster" workspaceName="userGeneratedContent" />
        <Map name="website" repositoryName="magnolia" workspaceName="website" />
        <Map name="config" repositoryName="magnolia" workspaceName="config" />
        <Map name="users" repositoryName="magnolia" workspaceName="users" />
        <Map name="userroles" repositoryName="magnolia" workspaceName="userroles" />
        <Map name="usergroups" repositoryName="magnolia" workspaceName="usergroups" />
        <Map name="mgnlSystem" repositoryName="magnolia" workspaceName="mgnlSystem" /> <!-- System internal data -->
        <Map name="mgnlVersion" repositoryName="magnolia" workspaceName="mgnlVersion" /> <!-- magnolia version workspace -->
    </RepositoryMapping>

    <!-- magnolia default repository -->
    <Repository name="magnolia" provider="info.magnolia.jackrabbit.ProviderImpl" loadOnStartup="true">
        <param name="configFile" value="${magnolia.repositories.jackrabbit.config}" />
        <param name="repositoryHome" value="${magnolia.repositories.home}/magnolia" />
        <!-- the default node types are loaded automatically
            <param name="customNodeTypes" value="WEB-INF/config/repo-conf/nodetypes/magnolia_nodetypes.xml" />
        -->
        <param name="contextFactoryClass" value="org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory" />
        <param name="providerURL" value="localhost" />
        <param name="bindName" value="${magnolia.webapp}" />
        <workspace name="website" />
        <workspace name="config" />
        <workspace name="users" />
        <workspace name="userroles" />
        <workspace name="usergroups" />
        <workspace name="mgnlSystem" />
        <workspace name="mgnlVersion" />
    </Repository>

    <!-- magnolia cluster repository -->
    <Repository name="magnoliacluster" provider="info.magnolia.jackrabbit.ProviderImpl" loadOnStartup="true">
        <param name="configFile" value="${magnolia.repositories.jackrabbit.cluster.config}" />
        <param name="repositoryHome" value="${magnolia.repositories.home}/magnoliacluster" />
        <!-- the default node types are loaded automatically
            <param name="customNodeTypes" value="WEB-INF/config/repo-conf/nodetypes/magnolia_nodetypes.xml" />
        -->
        <param name="contextFactoryClass" value="org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory" />
        <param name="providerURL" value="localhost" />
        <param name="bindName" value="cluster-${magnolia.webapp}" />
        <workspace name="userGeneratedContent" />
    </Repository>
</JCR>

丛集-Jack兔子-bundle-H2-search.xml:

代码语言:javascript
复制
<Repository>
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
        <param name="url" value="jdbc:h2:/PATH/TO/db;AUTO_SERVER=TRUE"/>
        <param name="schemaObjectPrefix" value="fs_"/>
        <param name="user" value="sa"/>
        <param name="password" value="sa"/>
    </FileSystem>
    <Security appName="magnolia">
        <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" />
        <AccessManager
            class="org.apache.jackrabbit.core.security.DefaultAccessManager">
        </AccessManager>
        <LoginModule
            class="info.magnolia.jaas.sp.jcr.JackrabbitAuthenticationModule">
        </LoginModule>
    </Security>
    <DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
        <param name="url" value="jdbc:h2:/PATH/TO/db;AUTO_SERVER=TRUE"/>
        <param name="schemaObjectPrefix" value="datastore_"/>
        <param name="user" value="sa"/>
        <param name="password" value="sa"/>
    </DataStore>
    <Workspaces rootPath="${rep.home}/workspaces"
        defaultWorkspace="default" />
    <Workspace name="default">
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${wsp.home}/default" />
        </FileSystem>
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
            <param name="url" value="jdbc:h2:/PATH/TO/db;AUTO_SERVER=TRUE"/>
            <param name="schemaObjectPrefix" value="ws_${wsp.name}_"/>
            <param name="user" value="sa"/>
            <param name="password" value="sa"/>
        </PersistenceManager>
        <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path" value="${wsp.home}/index" />
            <param name="useCompoundFile" value="true" />
            <param name="minMergeDocs" value="100" />
            <param name="volatileIdleTime" value="3" />
            <param name="maxMergeDocs" value="100000" />
            <param name="mergeFactor" value="10" />
            <param name="maxFieldLength" value="10000" />
            <param name="bufferSize" value="10" />
            <param name="cacheSize" value="1000" />
            <param name="forceConsistencyCheck" value="false" />
            <param name="autoRepair" value="true" />
            <param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl" />
            <param name="resultFetchSize" value="100" />
            <param name="extractorPoolSize" value="3" />
            <param name="extractorTimeout" value="100" />
            <param name="extractorBackLogSize" value="100" />
            <!-- needed to highlight the searched term -->
            <param name="supportHighlighting" value="true"/>
        </SearchIndex>
        <WorkspaceSecurity>
            <AccessControlProvider
                class="info.magnolia.cms.core.MagnoliaAccessProvider" />
        </WorkspaceSecurity>
    </Workspace>
    <Versioning rootPath="${rep.home}/version">
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${rep.home}/workspaces/version" />
        </FileSystem>
        <PersistenceManager
                class="org.apache.jackrabbit.core.persistence.bundle.H2PersistenceManager">
            <param name="url" value="jdbc:h2:${rep.home}/version/db" />
            <param name="schemaObjectPrefix" value="version_" />
        </PersistenceManager>
    </Versioning>
    <Cluster>
        <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
            <param name="driver" value="org.h2.Driver" />
            <param name="url" value="jdbc:h2:/PATH/TO/db;AUTO_SERVER=TRUE"/>
            <param name="schemaObjectPrefix" value="journal_"/>
            <param name="databaseType" value="h2"/>
            <param name="user" value="sa"/>
            <param name="password" value="sa"/>
        </Journal>
    </Cluster>
</Repository>

日志:

代码语言:javascript
复制
---------------------------------------------
MAGNOLIA LICENSE
---------------------------------------------
Version number : 5.3.5
Build          : 4. November 2014 (rev. of UNKNOWN)
Edition        : Enterprise Edition
Provider       : Magnolia International Ltd. (info@magnolia-cms.com)
2016-07-27 11:17:59,919 INFO  info.magnolia.cms.beans.config.ConfigLoader       : Initializing content repositories
2016-07-27 11:17:59,922 INFO  info.magnolia.repository.DefaultRepositoryManager : Loading JCR
2016-07-27 11:17:59,931 INFO  info.magnolia.repository.DefaultRepositoryManager : Loading JCR magnolia
2016-07-27 11:17:59,951 INFO  info.magnolia.jackrabbit.ProviderImpl             : Loading repository at /PATH/author/repositories/magnolia (config file: /PATH/WEB-INF/config/repo-conf/jackrabbit-bundle-h2-search.xml) - cluster id: "<unset>"
Jul 27, 2016 11:18:00 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /PATH/webapps/manager
Jul 27, 2016 11:18:00 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jul 27, 2016 11:18:00 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /PATH/webapps/manager has finished in 417 ms
2016-07-27 11:18:02,174 INFO  info.magnolia.repository.DefaultRepositoryManager : Loading JCR magnoliacluster
2016-07-27 11:18:02,174 INFO  info.magnolia.jackrabbit.ProviderImpl             : Loading repository at /PATH/author/repositories/magnoliacluster (config file: /PATH/WEB-INF/config/repo-conf/clustered-jackrabbit-bundle-h2-search.xml) - cluster id: "<unset>"

我不知道为什么上面写着“集群id:”。尽管在我的属性文件中将其设置为org.apache.jackrabbit.core.cluster.node_id。

EN

回答 1

Stack Overflow用户

发布于 2016-08-02 14:20:45

来自下面的wiki页面

群集id标识实例,用于向日志写入更改以及从日志加载更改。确保这是一个唯一的值,并且不与集群中的其他节点共享。 可以在属性文件(最方便的方式)或集群配置中的持久性管理器中定义群集id (这两种方法都用于附加文件)。

由于您还没有在上面的Jack兔子配置文件中提供任何集群id,请检查一下您的magnolia.properties文件是否包含一个集群id。如果没有,只需为访问JCR集群的每个Magnolia实例设置一个唯一值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38609419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档