1

リレーションシップの作成がハングしますが、その下のノードはリモート クライアントに保持されます。

public class Baz 
{  
    private static enum CustomRelationships implements RelationshipType {
        CATEGORY
    }

     public void foo()  
     {    
         RestGraphDatabse db = new RestGraphDatabase("http://remoteIp:7474/db/data",username,password);
         Transaction tx = db.beginTx();
         try{  
         Node a = db.createNode();
            a.setProperty("foo", "foo");  // finishes
            Node b = db.createNode();
            b.setProperty("bar", "bar"); //finishes
            a.createRelationshipTo(b, CustomRelationships .CATEGORY); // hangs
            System.out.println("Finished relationship");
            tx.success();
        } finally {
            tx.finish();
        }
     }  
}  

そして、私はその理由を理解できません。スタックはなく、接続はタイムアウトしません。

a.createRelationshipTo(b, DynamicRelationshipType.withName("CATEGORY"));

もハングアップします

このクエリは、管理シェルから正しく実行されます。

start first=node(19), second=node(20) Create first-[r:RELTYPE {リンケージ: first.Baz + '<-->' + second.BazCat }]->second return r

しかし、この方法で実行すると:

ExecutionResult result = engine.execute("start first=node("
                    + entityNode.getId() + "), second=node("
                    + categoryNode.getId() + ") "
                    + " Create first-[r:RELTYPE { linkage : first.Baz"
                    + " + '<-->' +  second.BazCat" + " }]->second return r");

また、ハングします。

4

1 に答える 1

1
  1. 残りの実際のトランザクションはありません。
  2. 内部スレッドがデーモン スレッドとして開始されないのは、Java-Rest-Binding のバグです。プログラムが終了していないだけで、実際にはハングしません。System.exit(0)回避策としてプログラムを終了できます。
于 2013-02-20T07:19:10.093 に答える