2016-07-27 34 views
2

我有一个Magnolia CMS系统,我尝试使用用户生成的内容为工作区配置群集存储库。 我们将有一个作者和一个公共实例,每个实例都有一个用于magnolia默认存储库的专用MYSQL数据库。 用户生成的内容应存储在h2数据库中,该数据库将位于共享目录中。 我们无法直接在服务器模式下启动h2数据库,因此,连接到h2数据库的连接将被配置为具有标志AUTO_SERVER = true的混合模式(请参阅http://www.h2database.com/html/features.html#auto_mixed_mode)。混合模式下的H2数据库长耳婆狗群集

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

我错过了一个配置吗?是否可以在混合模式下使用h2进行长耳兔群集?

的repository.xml:

<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> 

集群,长耳大野兔束-H2-search.xml:

<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> 

日志:

--------------------------------------------- 
MAGNOLIA LICENSE 
--------------------------------------------- 
Version number : 5.3.5 
Build   : 4. November 2014 (rev. of UNKNOWN) 
Edition  : Enterprise Edition 
Provider  : Magnolia International Ltd. ([email protected]) 
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>" 

诗:我不是确定它为什么说'cluster id:“”'。虽然我把它设置为org.apache.jackrabbit.core.cluster.node_id在我的属性文件中。

回答

1

从以下wiki page

集群ID标识实例,并用于更改写入日志以及加载从日志变化。确保这是一个唯一值,并且不与群集中的其他节点共享。

集群ID可以定义或者属性文件(最便捷的方式),或在群集配置中的持久性管理器(这两种方式在附件文件中使用)由于您没有提供

你的jackrabbit配置文件中的任何群集ID,你能否检查一下你的magnolia.properties文件是否包含一个?如果没有,只需为访问JCR群集的每个Magnolia实例设置一个唯一值。

相关问题