В настоящее время я использую neo4j 1.8.1. Я получаю NotInTransactionException, когда я запрашиваю индекс neo4j, чтобы получить некоторые узлы.Получение NotInTransactionException при запросе индекса neo4j
Ниже приведен простой запрос, который я уверен, выполнение на Neo4j
if (graphDb.index().existsForNodes("NODEINDEX")) {
IndexHits<Node> hits = graphDb.index().forNodes(NODEINDEX).query(query);
}
Ниже StackTrace за исключением.
"message" : "Error fetching transaction for current thread",
"exception" : "NotInTransactionException",
"stacktrace" : [ "org.neo4j.kernel.impl.index.IndexConnectionBroker.getCurrentTransaction(IndexConnectionBroker.java:134)", "org.neo4j.kernel.impl.index.IndexConnectionBroker.acquireReadOnlyResourceConnection(IndexConnectionBroker.java:84)", "org.neo4j.index.impl.lucene.LuceneIndex.getReadOnlyConnection(LuceneIndex.java:105)", "org.neo4j.index.impl.lucene.LuceneIndex.query(LuceneIndex.java:245)", "org.neo4j.index.impl.lucene.LuceneIndex.query(LuceneIndex.java:227)", "org.neo4j.index.impl.lucene.LuceneIndex.query(LuceneIndex.java:238)", "com.uprr.netcontrol.starmap.neo4j.plugins.aggregate_node_status.NodeStatusHelper.getGraphNodes(NodeStatusHelper.java:39)",
Я нашел следующее в Neo4j api.
private Transaction getCurrentTransaction() throws NotInTransactionException
{
try
{
return transactionManager.getTransaction();
}
catch (SystemException se)
{
throw new NotInTransactionException(
"Error fetching transaction for current thread", se);
}
}
Нужно ли нам явно запускать транзакцию для запроса индекса neo4j?
Любые мысли?
Благодаря
Вы начали транзакцию, начатую непосредственно перед выполнением запроса? – Rolf
Поскольку это транзакция с чтением, я не начинаю какую-либо транзакцию явно – Subbu
относительно индексов, моя догадка должна заключаться в явной транзакции, хотя даже при чтении. – Rolf