2013-02-17 138 views
1

我的關係創建掛起,但下面的節點管理堅持我的遠程客戶端。Neo4J創建關係掛起在遠程,但節點創建成功

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")); 

也掛起

該查詢將從管理員外殼正確執行:

開始第一=節點(19),第二=節點(20)創建第一代[R:RELTYPE { 起重:first.Baz + '< - >' + second.BazCat}] - >第二返回ř

然而,當以這種方式運行:

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"); 

也掛起。

+0

Transaction tx = rest.beginTx();你正在開始事務處理其餘變量,它必須在db變量上嗎? – 2013-02-17 20:11:26

+0

@RameshK糟糕的交叉編輯。 – Woot4Moo 2013-02-17 20:12:24

+0

@RameshK它現在已經修復。 – Woot4Moo 2013-02-17 20:12:50

回答

1
  1. 有沒有真正的交易休息。
  2. 這是Java-Rest-Binding中的一個錯誤,即內部線程不會作爲守護進程線程啓動。它實際上不會掛起程序沒有結束。 您可以使用System.exit(0)作爲解決方法結束程序。
+0

的確,我非常感謝您在這方面的工作。我想我們會更頻繁地碰到對方。 – Woot4Moo 2013-02-20 13:55:41