I've searched around the forum, and aware of people who are using different
indexes for optimization.  I am trying modify the
EmbeddedNeo4jWithIndexing.java from the samples directory so support
multiple indexes and I kept on getting exception whenever I try to commit
the transaction.  My use case seems so obvious so there must be a solution
for this.  If I only have one of the indexes, then it's fine, but whenever I
have 2 indexes then it barf'ed! 

The scenario I have is one node with a name and a description.  I want the
description to have full text search, but not the name.  So here is the
standard setup code (simplified for illustration).

g = new EmbeddedGraphDatabase(storeDir);
nIndex = g.index().forNodes ("node_name");
dIndex = g.index().forNodes ("node_desc",
MapUtil.stringMap(IndexManager.PROVIDER, "lucene", "type", "fulltext"));

try{
tx = graphDatabaseService.beginTx();

node = g.createNode();
node.setProperty("name","hello");
node.setProperty("description","this is the description");

nIndex.add(node, "name","hello");
dIndex.add(node, "description","this is the description");

tx.success();
}finally{
tx.finish();
}



Here is the exception I got:

Sep 6, 2011 8:53:32 PM org.neo4j.kernel.impl.transaction.TxManager commit
SEVERE: Commit failed
java.nio.channels.OverlappingFileLockException
        at
sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1166)
        at
sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1068)
        at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:868)
        at java.nio.channels.FileChannel.tryLock(FileChannel.java:962)
        at
org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:216)
        at org.apache.lucene.store.Lock.obtain(Lock.java:72)
        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1097)
        at
org.neo4j.index.impl.lucene.LuceneDataSource.getIndexWriter(LuceneDataSource.java:588)
        at
org.neo4j.index.impl.lucene.CommitContext.ensureWriterInstantiated(CommitContext.java:59)
        at
org.neo4j.index.impl.lucene.LuceneCommand$AddCommand.perform(LuceneCommand.java:188)
        at
org.neo4j.index.impl.lucene.LuceneTransaction.doCommit(LuceneTransaction.java:259)
        at
org.neo4j.kernel.impl.transaction.xaframework.XaTransaction.commit(XaTransaction.java:319)
        at
org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.commit(XaResourceManager.java:456)
        at
org.neo4j.kernel.impl.transaction.xaframework.XaResourceHelpImpl.commit(XaResourceHelpImpl.java:64)
        at
org.neo4j.kernel.impl.transaction.TransactionImpl.doCommit(TransactionImpl.java:516)
        at 
org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:659)
        at 
org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:622)
        at
org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:107)
        at 
org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:85)
        EmbeddedNeo4jWithIndexing.main(EmbeddedNeo4jWithIndexing.java:85)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Sep 6, 2011 8:53:32 PM org.neo4j.kernel.impl.transaction.TxManager commit
SEVERE: Unable to rollback transaction. Some resources may be commited
others not. Neo4j kernel should be SHUTDOWN for resource maintance and
transaction recovery ---->
javax.transaction.xa.XAException: Unknown
xid[GlobalId[NEOKERNL|-1963523328321029165|2], BranchId[ 52 49 52 49 52 49
]]
        at
org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.rollback(XaResourceManager.java:481)
        at
org.neo4j.kernel.impl.transaction.xaframework.XaResourceHelpImpl.rollback(XaResourceHelpImpl.java:111)
        at
org.neo4j.kernel.impl.transaction.TransactionImpl.doRollback(TransactionImpl.java:533)
        at 
org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:685)
        at 
org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:622)
        at
org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:107)
        at 
org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:85)
        EmbeddedNeo4jWithIndexing.main(EmbeddedNeo4jWithIndexing.java:85)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Exception in thread "main" org.neo4j.graphdb.TransactionFailureException:
Unable to commit transaction
        at
org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:104)
        EmbeddedNeo4jWithIndexing.main(EmbeddedNeo4jWithIndexing.java:85)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: javax.transaction.HeuristicMixedException: Unable to rollback
---> error in commit: java.nio.channels.OverlappingFileLockException --->
error code for rollback: 0
        at 
org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:703)
        at 
org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:622)
        at
org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:107)
        at 
org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:85)
        ... 6 more
Caused by: javax.transaction.xa.XAException: Unknown
xid[GlobalId[NEOKERNL|-1963523328321029165|2], BranchId[ 52 49 52 49 52 49
]]
        at
org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.rollback(XaResourceManager.java:481)
        at
org.neo4j.kernel.impl.transaction.xaframework.XaResourceHelpImpl.rollback(XaResourceHelpImpl.java:111)
        at
org.neo4j.kernel.impl.transaction.TransactionImpl.doRollback(TransactionImpl.java:533)
        at 
org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:685)
        ... 9 more



--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/multiple-lucene-index-in-a-transaction-doesn-t-work-tp3315601p3315601.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to