2014-12-03 2 views
0

У меня очень редкая проблема. У меня есть Java-программа, которая вставляет в базу данных NEO4j. Программа отлично работает в моей среде local_host, но когда я развернул ее на сервере (где находится neo4j), БД не обновляется. Вот что яРезультаты Neo4J не обновляются

//First delete the DB 
ExecutionEngine engine = new ExecutionEngine(db);  
engine.execute("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r"); 

Transaction tx = db.beginTx(); 
//insertion here 
tx.success(); 
tx.close(); 

//look if it was correctly updated 
System.out.println("NODES: " + engine.execute("START n=node(*) RETURN  count(n)").dumpToString()); 
System.out.println("RELATIONSHIPS: " +engine.execute("START r=relationship(*) RETURN count(r)").dumpToString()); 
db.shutdown(); 

Если я смотрю на все журналы работает нормально

UPDATED 
NODES: +----------+ 
| count(n) | 
+----------+ 
| 99  | 
+----------+ 
1 row 

RELATIONSHIPS: +----------+ 
| count(r) | 
+----------+ 
| 76  | 
+----------+ 
1 row 

Но когда я смотрю в Neo4j Db через браузер ничего не произошло предыдущие результаты все еще там!. Имейте в уведомлении, что если я запускаю ту же программу на моей среде Local_host поведение такое же, но в этом случае он правильно обновляется

Спасибо заранее

+1

Пожалуйста, обновите ваш вопрос, чтобы включить ответы на эти вопросы - но я думаю, вы найдете свое решение с отслеживаются вниз : какой каталог БД задает ваша веб-версия? Когда вы создаете этот ExecutionEngine в своем коде, привязан ли он к встроенной БД? Если да, то каков путь к этому? Если нет, какова конечная точка REST? Я предполагаю, что где-то вы указываете на неправильную базу данных. Итак, обновление происходит, но не там, где вы ожидаете увидеть его. – FrobberOfBits

ответ

1

Спасибо за совет, я решаемой проблема. Проблема заключалась в маршруте к базе данных Neo4J. Когда вы запускаете свою программу neo4j в том же экземпляре, где находится база данных Neo4J, вам нужно указать путь к папке, а не IP. Фактически это создало новый neo4j, называя его IP.

Я использовал

public final static String CONEXION_NEO4J = "/folder/of/neo4jdb/database.db"; 
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(CONEXION_NEO4J) 

вместо

public final static String CONEXION_NEO4J = "//X.X.X.X/neo4j/database.db"; 
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(CONEXION_NEO4J) 

С уважением

Смежные вопросы