Neo4j, graphaware: после перехвата исключения другой запрос выполняться не будет.

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

 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

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


person Albert s    schedule 07.02.2017    source источник
comment
это версия neo4j 3.1?   -  person Christophe Willemsen    schedule 08.02.2017
comment
Да, 3.1, и я соединяю с помощью болта   -  person Albert s    schedule 08.02.2017
comment
Ответил на вопрос github github.com/graphaware/neo4j-php -клиент/вопросы/   -  person Christophe Willemsen    schedule 09.02.2017


Ответы (1)


Таким образом, кажется, что исключение, созданное 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

Я не думаю, что исключение, которое разрывает соединение, является желаемым поведением. Подниму вопрос на гитхабе.

person Albert s    schedule 08.02.2017