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

Reply via email to