2017-02-07 2 views
0

Я подключаюсь к neo4j обычным способом, и я могу запускать запросы без проблем.
Во время тестирования я написал запрос, который должен завершиться ошибкой (из-за ограничения уникальности), запрос не выполняется, как ожидалось, и я поймаю исключение.
Проблема в том, что я пытаюсь выполнить следующий запрос в очереди, он просто зависает (дольше, чем таймаут).
Я не думаю, что это нормальное поведение.Neo4j, graphaware: после обнаружения исключения другой запрос не будет выполняться.

try{ 
    $result = $neo->run ($query); 
} 
catch (Exception $e) { 
      // handle it 
} 

// all good so far 
// now we attempt: 

try{ 
    $result = $neo->run ($next_query); 
} 
catch (Exception $e) { 
      // handle it 
} 
// hangs longer than timeout 

если я удалить неисправный запрос из очереди, все завершается

+0

это версия neo4j 3.1? –

+0

Да, 3.1, и im подключение с помощью болта –

+0

Ответил на вопрос github https://github.com/graphaware/neo4j-php-client/issues/86#issuecomment-278420273 –

ответ

0

Таким образом, кажется, что исключение брошенного PHP-клиент разрывает соединение с Neo4j.
Если я изменю код на следующий, все работает отлично.

try{ 
    $result = $neo->run ($query); 
} 
catch (Exception $e) { 
      // handle it 
     connect_to_neo() 
} 

// all good so far 

try{ 
    $result = $neo->run ($next_query); 
} 
catch (Exception $e) { 
      // handle it 
} 
// all good, $next_query gets executed 

Я не думаю, что исключение, которое нарушает соединение, является желательным поведением. Поднимет вопрос на github.

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