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