2016-06-29 6 views
1

neo4jにストアドプロシージャを書き込んだ後、neo4jプラグインに追加しました。エラー「を取得ストアドプロシージャを呼び出すとき次のエラーが表示される「org.neo4j.kernel.api.exceptions.TransactionFailureException:成功したとマークされたトランザクションはロールバックされました」

org.neo4j.kernel.api.exceptions.TransactionFailureException: 取引は以下

は、私がどのようにに関するいくつかの情報です成功したとしてマークされた場合でも、ロールバック。

call example.search12("919818131043","anu"); 
:やっ

@Procedure("example.search12") 
public Stream<SearchHit> searchData(
    @Name("phoneNumber") String phoneNumber, 
    @Name("searchText") String searchText) throws InterruptedException, ExecutionException { 

    List<SearchHit> resultList = new ArrayList<>(); 
    try { 
     Node startNode = getStartNode(phoneNumber); 
     if(null == startNode){ 
      System.out.println("Phone Number not found::"+ phoneNumber); 
      return null; 
     } 
     final Set<Node> results = new LinkedHashSet<>(); 
     innerSeacrh(db, startNode, searchText, 1,results); 
     List<Node> nodes = new ArrayList<Node>(); 

     for (Node node : results) { 
      System.out.println(node.getProperty("fullname")); 
      nodes.add(node); 
      resultList.add(new SearchHit(node)); 
     } 
    } catch(Exception ex) { 
     ex.printStackTrace(); 
    } 

    return resultList.stream(); 
} 

public static class SearchHit { 
    // This records contain a single field named 'nodeId' 
    public long nodeId; 

    public SearchHit(Node node) { 
     this.nodeId = node.getId(); 
    } 
} 

私は、以下のコマンドでストアドプロシージャを呼び出しています

以下のエラーが表示されます。

org.neo4j.kernel.api.exceptions.TransactionFailureException: トランザクションが成功

としてマークされた場合でも、ロールバック、私はできるだけ早くそれを解決する必要が助けてください。

答えて

1

私はこの問題を解決しました。実際には、格納されたprocをヒットしたときに暗黙的にトランザクションをオープンするので、同じスレッドで別のトランザクションをオープンしようとした場合です。それは問題を提起する。

+0

暗黙のトランザクションオープンをオフにできましたか? – Pete

関連する問題