J'ai un système Magnolia CMS et j'essaie de configurer un référentiel en cluster pour un espace de travail avec un contenu généré par l'utilisateur. Nous aurons un auteur et une instance publique, chacun avec une base de données MYSQL dédiée au référentiel magnolia default. Le contenu généré par l'utilisateur doit être stocké dans une base de données h2 qui sera située dans un répertoire partagé. Nous ne pouvons pas démarrer la base de données h2 directement en mode serveur. Par conséquent, les connexions à la base de données h2 seront configurées en mode mixte avec l'indicateur AUTO_SERVER = true (voir http://www.h2database.com/html/features.html#auto_mixed_mode).Mise en cluster Jackrabbit avec une base de données H2 en mode mixte
L'initialisation des référentiels est sans faille. Une fois les données stockées dans le référentiel en cluster, le redémarrage suivant s'arrête/se bloque pendant la phase de chargement du référentiel en cluster (voir le journal).
Est-ce que j'ai manqué une configuration? Est-il même possible d'utiliser un h2 en mode mixte pour le clustering jackrabbit?
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>
cluster-Jackrabbit-paquet-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>
journal:
---------------------------------------------
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>"
Ps .: Je ne suis pas Bien sûr, il est dit 'ID de cluster: ""'. Bien que je l'ai défini comme org.apache.jackrabbit.core.cluster.node_id dans mon fichier de propriétés.