Hi, I'm trying to set a Magnolia site with 1 author instance and 2 public instances. The public instances should effectively display the same content.
To do this I have been trying to set up a clustered repository for some workspaces (website, etc.). I also set up a separate db for the clustered content. Below you can see the configuration (excerpts). The problem is, that the 2nd public instance will not start due to this error: "Unable to initialize repository: The repository home /home/cosmo/projects/cb-project/repositories/shared_data appears to be in use since the file named .lock is locked by another process." Isn't that the whole point of using cluster noden, so that the locking aren't an issue? public/magnolia.properties: [code]magnolia.repositories.config=WEB-INF/config/public/repositories.xml magnolia.repositories.home=/home/cosmo/projects/cb-project/repositories/public magnolia.repositories.jackrabbit.config=WEB-INF/config/repo-conf/jackrabbit-bundle-mysql-search-public.xml magnolia.repositories.jackrabbit.cluster.config=WEB-INF/config/repo-conf/clustered-jackrabbit-bundle-mysql-search-public.xml magnolia.clusterid=mclu1 [/code] public/repositories.xml: [code] <RepositoryMapping> <Map name="website" repositoryName="magnoliacluster" workspaceName="website" /> <Map name="config" repositoryName="magnoliacluster" workspaceName="config" /> <Map name="users" repositoryName="magnoliacluster" workspaceName="users" /> <Map name="userroles" repositoryName="magnoliacluster" workspaceName="userroles" /> <Map name="usergroups" repositoryName="magnoliacluster" workspaceName="usergroups" /> <Map name="mgnlSystem" repositoryName="magnolia" workspaceName="mgnlSystem" /> <!-- System internal data --> <Map name="mgnlVersion" repositoryName="magnolia" workspaceName="mgnlVersion" /> <!-- magnolia version workspace --> <Map name="products" repositoryName="magnoliacluster" workspaceName="products" /> <Map name="dam" repositoryName="magnoliacluster" workspaceName="dam" /> </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="mgnlSystem" /> <workspace name="mgnlVersion" /> </Repository> <!-- magnolia clustered repository --> <Repository name="magnoliacluster" provider="info.magnolia.jackrabbit.ProviderImpl" loadOnStartup="true"> <param name="configFile" value="${magnolia.repositories.jackrabbit.cluster.config}" /> <param name="repositoryHome" value="/home/cosmo/projects/cb-project/repositories/shared_data" /> <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="website" /> <workspace name="config" /> <workspace name="users" /> <workspace name="userroles" /> <workspace name="usergroups" /> <workspace name="products" /> <workspace name="dam" /> </Repository> [/code] public_fallback/magnolia.properties: [code]magnolia.repositories.config=WEB-INF/config/public_fallback/repositories.xml magnolia.repositories.home=/home/cosmo/projects/cb-project/repositories/public_fallback magnolia.repositories.jackrabbit.config=WEB-INF/config/repo-conf/jackrabbit-bundle-mysql-search-public.xml magnolia.repositories.jackrabbit.cluster.config=WEB-INF/config/repo-conf/clustered-jackrabbit-bundle-mysql-search-public.xml magnolia.clusterid=mclu2[/code] public_fallback/repositories.xml [code] <RepositoryMapping> <Map name="website" repositoryName="magnoliacluster" workspaceName="website" /> <Map name="config" repositoryName="magnoliacluster" workspaceName="config" /> <Map name="users" repositoryName="magnoliacluster" workspaceName="users" /> <Map name="userroles" repositoryName="magnoliacluster" workspaceName="userroles" /> <Map name="usergroups" repositoryName="magnoliacluster" workspaceName="usergroups" /> <Map name="mgnlSystem" repositoryName="magnolia" workspaceName="mgnlSystem" /> <!-- System internal data --> <Map name="mgnlVersion" repositoryName="magnolia" workspaceName="mgnlVersion" /> <!-- magnolia version workspace --> <Map name="products" repositoryName="magnoliacluster" workspaceName="products" /> <Map name="dam" repositoryName="magnoliacluster" workspaceName="dam" /> </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="mgnlSystem" /> <workspace name="mgnlVersion" /> </Repository> <!-- magnolia clustered repository --> <Repository name="magnoliacluster" provider="info.magnolia.jackrabbit.ProviderImpl" loadOnStartup="true"> <param name="configFile" value="${magnolia.repositories.jackrabbit.cluster.config}" /> <param name="repositoryHome" value="/home/cosmo/projects/cb-project/repositories/shared_data" /> <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="website" /> <workspace name="config" /> <workspace name="users" /> <workspace name="userroles" /> <workspace name="usergroups" /> <workspace name="products" /> <workspace name="dam" /> </Repository> [/code] repo-conf/jackrabbit-bundle-mysql-search-public.xml [code]<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN" "http://jackrabbit.apache.org/dtd/repository-2.0.dtd"> <Repository> <DataSources> <DataSource name="magnolia"> <param name="driver" value="com.mysql.jdbc.Driver" /> <param name="url" value="jdbc:mysql://192.168.2.77:3306/cb_project_mag_public" /> <param name="user" value="cb_project" /> <param name="password" value="cb_project" /> <param name="databaseType" value="mysql"/> <param name="validationQuery" value="select 1"/> </DataSource> </DataSources> <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> <param name="path" value="${rep.home}/repository" /> </FileSystem> <Security appName="magnolia"> <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"/> <AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager"> </AccessManager> <!-- login module defined here is used by the repo to authenticate every request. not by the webapp to authenticate user against the webapp context (this one has to be passed before thing here gets invoked --> <LoginModule class="info.magnolia.jaas.sp.jcr.JackrabbitAuthenticationModule"> </LoginModule> </Security> <DataStore class="org.apache.jackrabbit.core.data.FileDataStore"> <param name="path" value="${rep.home}/repository/datastore"/> <param name="minRecordLength" value="1024"/> </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.MySqlPersistenceManager"> <param name="dataSourceName" value="magnolia"/> <param name="schemaObjectPrefix" value="pm_${wsp.name}_" /> </PersistenceManager> <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> <param name="path" value="${wsp.home}/index" /> <!-- SearchIndex will get the indexing configuration from the classpath, if not found in the workspace home --> <param name="indexingConfiguration" value="/info/magnolia/jackrabbit/indexing_configuration.xml"/> <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="respectDocumentOrder" value="true" /> <param name="resultFetchSize" value="100" /> <param name="extractorPoolSize" value="3" /> <param name="extractorTimeout" value="100" /> <param name="extractorBackLogSize" value="100" /> </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.pool.MySqlPersistenceManager"> <param name="dataSourceName" value="magnolia"/> <param name="schemaObjectPrefix" value="version_" /> </PersistenceManager> </Versioning> </Repository>[/code] repo-conf/clustered-jackrabbit-bundle-mysql-search-public.xml: [code]<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN" "http://jackrabbit.apache.org/dtd/repository-2.0.dtd"> <Repository> <DataSources> <DataSource name="magnolia"> <param name="driver" value="com.mysql.jdbc.Driver" /> <param name="url" value="jdbc:mysql://192.168.2.77:3306/cb_project_public_shared" /> <param name="user" value="cb_project" /> <param name="password" value="cb_project" /> <param name="databaseType" value="mysql"/> <param name="validationQuery" value="select 1"/> </DataSource> </DataSources> <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> <param name="path" value="${rep.home}/../shared_data/repository" /> </FileSystem> <Security appName="magnolia"> <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"/> <AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager"> </AccessManager> <!-- login module defined here is used by the repo to authenticate every request. not by the webapp to authenticate user against the webapp context (this one has to be passed before thing here gets invoked --> <LoginModule class="info.magnolia.jaas.sp.jcr.JackrabbitAuthenticationModule"> </LoginModule> </Security> <DataStore class="org.apache.jackrabbit.core.data.FileDataStore"> <param name="path" value="${rep.home}/../shared_data/repository/datastore"/> <param name="minRecordLength" value="1024"/> </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.MySqlPersistenceManager"> <param name="dataSourceName" value="magnolia"/> <param name="schemaObjectPrefix" value="pm_${wsp.name}_" /> </PersistenceManager> <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> <param name="path" value="${wsp.home}/index" /> <!-- SearchIndex will get the indexing configuration from the classpath, if not found in the workspace home --> <param name="indexingConfiguration" value="/info/magnolia/jackrabbit/indexing_configuration.xml"/> <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="respectDocumentOrder" value="true" /> <param name="resultFetchSize" value="100" /> <param name="extractorPoolSize" value="3" /> <param name="extractorTimeout" value="100" /> <param name="extractorBackLogSize" value="100" /> </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.pool.MySqlPersistenceManager"> <param name="dataSourceName" value="magnolia"/> <param name="schemaObjectPrefix" value="version_" /> </PersistenceManager> </Versioning> <Cluster id="mclu1" syncDelay="2000"> <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal"> <param name="revision" value="${rep.home}/revision"/> <param name="driver" value="com.mysql.jdbc.Driver"/> <param name="url" value="jdbc:mysql://192.168.2.77:3306/cb_project_public_shared"/> <param name="user" value="cb_project"/> <param name="password" value="cb_project"/> <param name="databaseType" value="mysql"/> <param name="schemaObjectPrefix" value="JOURNAL_"/> </Journal> </Cluster> <Cluster id="mclu2" syncDelay="2000"> <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal"> <param name="revision" value="${rep.home}/revision"/> <param name="driver" value="com.mysql.jdbc.Driver"/> <param name="url" value="jdbc:mysql://192.168.2.77:3306/cb_project_public_shared"/> <param name="user" value="cb_project"/> <param name="password" value="cb_project"/> <param name="databaseType" value="mysql"/> <param name="schemaObjectPrefix" value="JOURNAL_"/> </Journal> </Cluster> </Repository>[/code] -- Context is everything: http://forum.magnolia-cms.com/forum/thread.html?threadId=9cff9e4c-6cb5-4b34-80a5-af0a2d19b8e0 ---------------------------------------------------------------- For list details, see http://www.magnolia-cms.com/community/mailing-lists.html Alternatively, use our forums: http://forum.magnolia-cms.com/ To unsubscribe, E-mail to: <user-list-unsubscr...@magnolia-cms.com> ----------------------------------------------------------------