No, we're not using a shared filesystem between the cluster nodes. The only things shared between the cluster nodes are the persistence manager and the datastore. Could it be Lucene creates a lock-file and that lock-file ends up in the datastore or persistence manager, instead of on the local filesystem? Where is the FSDirectory of Lucene located?
Dennis > The only thing I can think of is that Lucene left a lock file > somewhere but I have no clue why it should do that... It is strange > that this happens with the bundle PM and not with the regular DB PM. > You don't use a filsystem which is shared between the cluster nodes, > do you? > > Martijn > > On Wed, Dec 16, 2009 at 10:37 AM, Dennis van der Laan > <[email protected]> wrote: > >> Hi Martijn, >> >>> We often use a bundle db PM in a cluster and I've never seen the >>> problem you describe. It woul help if you can provide more detailed >>> logging, and which version of Jackrabbit are you using? >>> >>> >>> >> See below for our configuration file and some more error logging. Note >> that the System property "ucms.cluster.id" is different for each cluster >> node, the rest of the used properties have the same values for all >> cluster nodes. As said, changing the bundle.OraclePersistenceManager to >> a db.OraclePersistenceManager fixes the problem, but is not what I want... >> >> Thanks, >> Dennis >> >> === repository.xml === >> >> <?xml version="1.0"?> >> <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD >> Jackrabbit 1.5//EN" >> >> "http://jackrabbit.apache.org/dtd/repository-1.5.dtd"> >> <Repository> >> <Cluster id="${ucms.cluster.id}"> >> <Journal >> class="org.apache.jackrabbit.core.journal.OracleDatabaseJournal"> >> <param name="revision" value="${rep.home}/revision.log" /> >> <param name="driver" value="oracle.jdbc.driver.OracleDriver" /> >> <param name="url" value="${ucms.cluster.db.url}" /> >> <param name="user" value="${ucms.cluster.db.user}"/> >> <param name="password" value="${ucms.cluster.db.passwd}"/> >> </Journal> >> </Cluster> >> >> <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> >> <param name="path" value="${rep.home}/repository"/> >> </FileSystem> >> >> <Security appName="Jackrabbit"> >> <SecurityManager >> class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" >> workspaceName="security" /> >> <AccessManager >> class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager" /> >> <LoginModule >> class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule"> >> <param name="anonymousId" value="anonymous"/> >> <param name="adminId" value="admin"/> >> </LoginModule> >> </Security> >> >> <Workspaces rootPath="${rep.home}/workspaces" >> defaultWorkspace="default"/> >> >> <Workspace name="${wsp.name}"> >> <FileSystem >> class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> >> <param name="path" value="${wsp.home}"/> >> </FileSystem> >> >> <PersistenceManager >> class="org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager"> >> <param name="url" value="${ucms.cluster.db.url}"/> >> <param name="user" value="${ucms.cluster.db.user}"/> >> <param name="password" value="${ucms.cluster.db.passwd}"/> >> <param name="schemaObjectPrefix" value="${wsp.name}_"/> >> <param name="bundleCacheSize" value="8"/> >> </PersistenceManager> >> >> <SearchIndex >> class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> >> <param name="path" value="${wsp.home}/index"/> >> <param name="textFilterClasses" >> value="org.apache.jackrabbit.extractor.PlainTextExtractor,org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/> >> <param name="extractorPoolSize" value="2"/> >> <param name="supportHighlighting" value="true"/> >> </SearchIndex> >> </Workspace> >> >> <Versioning rootPath="${rep.home}/version"> >> <FileSystem >> class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> >> <param name="path" value="${rep.home}/version" /> >> </FileSystem> >> >> <PersistenceManager >> class="org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager"> >> <param name="url" value="${ucms.cluster.db.url}"/> >> <param name="user" value="${ucms.cluster.db.user}"/> >> <param name="password" value="${ucms.cluster.db.passwd}"/> >> <param name="schemaObjectPrefix" value="version_"/> >> <param name="bundleCacheSize" value="8"/> >> </PersistenceManager> >> </Versioning> >> >> <SearchIndex >> class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> >> <param name="path" value="${rep.home}/repository/index"/> >> <param name="textFilterClasses" >> value="org.apache.jackrabbit.extractor.PlainTextExtractor,org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/> >> <param name="extractorPoolSize" value="2"/> >> <param name="supportHighlighting" value="true"/> >> </SearchIndex> >> >> <!-- DataStore configuration --> >> <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore"> >> <param name="driver" value="oracle.jdbc.OracleDriver"/> >> <param name="url" value="${ucms.cluster.db.url}"/> >> <param name="user" value="${ucms.cluster.db.user}"/> >> <param name="password" value="${ucms.cluster.db.passwd}"/> >> <param name="minRecordLength" value="1024"/> >> <param name="maxConnections" value="8"/> >> > > >> <param name="copyWhenReading" value="true"/> >> </DataStore> >> </Repository> >> >> === error message === >> >> 2009-12-15 22:50:33,948 ERROR >> [org.apache.jackrabbit.core.RepositoryImpl] - failed to start >> Repository: Directory was previously created with a differ >> ent LockFactory instance; please pass null as the lockFactory instance >> and use setLockFactory to change it: Directory was previously created >> with a di >> fferent LockFactory instance; please pass null as the lockFactory >> instance and use setLockFactory to change it >> javax.jcr.RepositoryException: Directory was previously created with a >> different LockFactory instance; please pass null as the lockFactory >> instance an >> d use setLockFactory to change it: Directory was previously created with >> a different LockFactory instance; please pass null as the lockFactory >> instanc >> e and use setLockFactory to change it: Directory was previously created >> with a different LockFactory instance; please pass null as the >> lockFactory ins >> tance and use setLockFactory to change it >> at >> org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(SearchManager.java:540) >> at >> org.apache.jackrabbit.core.SearchManager.<init>(SearchManager.java:213) >> at >> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getSearchManager(RepositoryImpl.java:1790) >> at >> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doPostInitialize(RepositoryImpl.java:2008) >> at >> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1921) >> at >> org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:489) >> at >> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:330) >> at >> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:627) >> at >> org.apache.jackrabbit.core.jndi.BindableRepository.createRepository(BindableRepository.java:141) >> at >> org.apache.jackrabbit.core.jndi.BindableRepository.init(BindableRepository.java:117) >> at >> org.apache.jackrabbit.core.jndi.BindableRepository.<init>(BindableRepository.java:106) >> at >> org.apache.jackrabbit.core.jndi.BindableRepositoryFactory.getObjectInstance(BindableRepositoryFactory.java:51) >> at >> org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140) >> at >> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:793) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:140) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:781) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:153) >> at >> org.apache.naming.factory.ResourceLinkFactory.getObjectInstance(ResourceLinkFactory.java:97) >> at >> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:793) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:140) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:781) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:153) >> at >> nl.rug.ucms.fs.jcr.JcrConfiguration.initialize(JcrConfiguration.java:44) >> ... >> Caused by: java.io.IOException: Directory was previously created with a >> different LockFactory instance; please pass null as the lockFactory >> instance a >> nd use setLockFactory to change it >> at >> org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:192) >> at >> org.apache.jackrabbit.core.query.lucene.directory.FSDirectoryManager.getDirectory(FSDirectoryManager.java:64) >> at >> org.apache.jackrabbit.core.query.lucene.MultiIndex.<init>(MultiIndex.java:229) >> at >> org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(SearchIndex.java:502) >> at >> org.apache.jackrabbit.core.query.AbstractQueryHandler.init(AbstractQueryHandler.java:66) >> at >> org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(SearchManager.java:538) >> ... 46 more >> java.io.IOException: Directory was previously created with a different >> LockFactory instance; please pass null as the lockFactory instance and >> use setL >> ockFactory to change it >> at >> org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:192) >> at >> org.apache.jackrabbit.core.query.lucene.directory.FSDirectoryManager.getDirectory(FSDirectoryManager.java:64) >> at >> org.apache.jackrabbit.core.query.lucene.MultiIndex.<init>(MultiIndex.java:229) >> at >> org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(SearchIndex.java:502) >> at >> org.apache.jackrabbit.core.query.AbstractQueryHandler.init(AbstractQueryHandler.java:66) >> at >> org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(SearchManager.java:538) >> at >> org.apache.jackrabbit.core.SearchManager.<init>(SearchManager.java:213) >> at >> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getSearchManager(RepositoryImpl.java:1790) >> at >> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doPostInitialize(RepositoryImpl.java:2008) >> at >> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1921) >> at >> org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:489) >> at >> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:330) >> at >> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:627) >> at >> org.apache.jackrabbit.core.jndi.BindableRepository.createRepository(BindableRepository.java:141) >> at >> org.apache.jackrabbit.core.jndi.BindableRepository.init(BindableRepository.java:117) >> at >> org.apache.jackrabbit.core.jndi.BindableRepository.<init>(BindableRepository.java:106) >> at >> org.apache.jackrabbit.core.jndi.BindableRepositoryFactory.getObjectInstance(BindableRepositoryFactory.java:51) >> at >> org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140) >> at >> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:793) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:140) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:781) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:153) >> at >> org.apache.naming.factory.ResourceLinkFactory.getObjectInstance(ResourceLinkFactory.java:97) >> at >> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:793) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:140) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:781) >> at org.apache.naming.NamingContext.lookup(NamingContext.java:153) >> at >> nl.rug.ucms.fs.jcr.JcrConfiguration.initialize(JcrConfiguration.java:44) >> ... >> >> -- >> Dennis van der Laan >> >> >>
