2014-01-20 22 views
3

我Neo4j的服務器運作良好,但我的服務器重新啓動,並且Neo4j的未啓動Neo4j的2開始failes後運作良好

服務器:Ubuntu的13.10
JDK:甲骨文JDK

這是錯誤的:

SEVERE: 
org.neo4j.server.ServerStartupException: Starting Neo4j Server failed: Error starting org.neo4j.kernel.EmbeddedGraphDatabase, /var/lib/neo4j/data/graph.db 
    at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:209) 
    at org.neo4j.server.Bootstrapper.start(Bootstrapper.java:87) 
    at org.neo4j.server.Bootstrapper.main(Bootstrapper.java:50) 
Caused by: java.lang.RuntimeException: Error starting org.neo4j.kernel.EmbeddedGraphDatabase, /var/lib/neo4j/data/graph.db 
    at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:333) 
    at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:63) 
    at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:92) 
    at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:198) 
    at org.neo4j.kernel.impl.recovery.StoreRecoverer.recover(StoreRecoverer.java:115) 
    at org.neo4j.server.preflight.PerformRecoveryIfNecessary.run(PerformRecoveryIfNecessary.java:59) 
    at org.neo4j.server.preflight.PreFlightTasks.run(PreFlightTasks.java:70) 
    at org.neo4j.server.AbstractNeoServer.runPreflightTasks(AbstractNeoServer.java:319) 
    at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:144) 
    ... 2 more 
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]' was successfully initialized, but failed to start. Please see attached cause exception. 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:504) 
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 
    at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:310) 
    ... 10 more 
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]' was successfully initialized, but failed to start. Please see attached cause exception. 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:504) 
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 
    at org.neo4j.kernel.extension.KernelExtensions.start(KernelExtensions.java:118) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:498) 
    ... 12 more 
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]' was successfully initialized, but failed to start. Please see attached cause exception. 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:504) 
    at org.neo4j.kernel.lifecycle.LifeSupport.bringToState(LifeSupport.java:411) 
    at org.neo4j.kernel.lifecycle.LifeSupport.add(LifeSupport.java:324) 
    at org.neo4j.kernel.impl.transaction.XaDataSourceManager.registerDataSource(XaDataSourceManager.java:236) 
    at org.neo4j.index.lucene.LuceneKernelExtension.start(LuceneKernelExtension.java:79) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:498) 
    ... 15 more 
Caused by: java.lang.NullPointerException 
    at org.neo4j.kernel.impl.index.IndexProviderStore.<init>(IndexProviderStore.java:66) 
    at org.neo4j.index.impl.lucene.LuceneDataSource.newIndexStore(LuceneDataSource.java:301) 
    at org.neo4j.index.impl.lucene.LuceneDataSource.start(LuceneDataSource.java:224) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:498) 
    ... 20 more 

Jan 20, 2014 1:02:28 PM org.neo4j.server.logging.Logger log 
SEVERE: Failed to start Neo Server on port [7474] 
+0

這是Neo4j 2.0.0最終? –

+0

是neo4j 2.0.0 –

+0

你能與我們分享您的數據庫進行檢查嗎?請給我發電子郵件在邁克爾在neotechnology.com –

回答

0

我以前正面臨這個問題。後來我想出了幾點,你需要確保妥善處理。

  1. 如果處於嵌入模式,請確保一次使用一個實例。
  2. 正確註冊關閉掛鉤
  3. 查看服務器在重新啓動時是否仍在運行索引。
  4. 從neo4j-db文件夾中刪除tm_tx_log.1文件,然後重新啓動。

現在前3個是不太可能導致您的問題,所以我做了什麼,我抓到了拋出的異常,然後刪除tm_tx_log.1文件,然後初始化服務。不是簡單的證明,而是一種解決方法。

 public class GraphDB { 



     private static GraphDB graph = null; 
     private static final String DB_PATH = "target/neo4j-db"; 
     private static GraphDatabaseService graphService = null; 

     protected GraphDB() { 
      try{ 
      graphService = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH); 
      registerShutdownHook(graphService); 
      }catch(Exception e){ 
       File file = new File(DB_PATH+"/tm_tx_log.1"); 
       file.delete(); 
      } 
     } 

     public static GraphDB getInstance() { 
      if (graph == null) { 
       graph = new GraphDB(); 
      } 
      return graph; 
     } 

     public GraphDatabaseService getGraphDbService() { 
      return graphService; 

     } 

     public void clearDb() { 
      try { 
       // FileUtils.deleteRecursively(); 
       File files = new File(DB_PATH); 
       for(File file : files.listFiles()){ 
        FileDeleteStrategy.FORCE.delete(file); 
       } 
      } catch (IOException e) { 
       throw new RuntimeException(e); 
      } 
     } 

     public void shutDown() { 
      System.out.println(); 
      System.out.println("Shutting down database ..."); 
      graphService.shutdown(); 
     } 

     private static void registerShutdownHook(final GraphDatabaseService graphDb) { 
      Runtime.getRuntime().addShutdownHook(new Thread() { 
       @Override 
       public void run() { 
        graphDb.shutdown(); 
       } 
      }); 
     }  
     } 

而在你的主節中調用句柄時,graphService爲null。

public static void main(String[] args) { 
     GraphDB graphDb = GraphDB.getInstance(); 
     if(graphDb == null){ 
      graphDb = GraphDB.getInstance(); 
     } 
} 
相關問題