2013-11-25 2 views
3

Я использую Neo4j (встроенный) Enterprise Edition 1.9.4 вместе с оболочкой Scala-Neo4j в моем проекте. Я попытался сделать резервную копию данных Neo4j с использованием Java, как показано нижеВстроенная онлайн-резервная копия Neo4j с Java

def backup_data() 
    { 
     val backupPath: File = new File("D:/neo4j-enterprise-1.9.4/data/backup/") 
     val backup = OnlineBackup.from("127.0.0.1") 
     if(backupPath.list().length > 0) 
     { 
      backup.incremental(backupPath.getPath()) 
     } 
     else 
     { 
     backup.full(backupPath.getPath()); 
     } 
    } 

Он отлично работает для полной резервной копии. Но инкрементная часть резервного копирования бросает исключение Null-указателя.

Где я ошибся?

РЕДАКТИРОВАТЬ

Построения экземпляра ГРАФОВОЙ БАЗЫ ДАННЫХ через Scala-Neo4j обертку

class MyNeo4jClass extends SomethingClass with Neo4jWrapper with EmbeddedGraphDatabaseServiceProvider { 
    def neo4jStoreDir = "/tmp/temp-neo-test" 
    . . . 
} 

StackTrace

Exception in thread "main" java.lang.NullPointerException 
    at org.neo4j.consistency.checking.OwnerChain$3.checkReference(OwnerChain.java:111) 
    at org.neo4j.consistency.checking.OwnerChain$3.checkReference(OwnerChain.java:106) 
    at org.neo4j.consistency.report.ConsistencyReporter$DiffReportHandler.checkReference(ConsistencyReporter.java:330) 
    at org.neo4j.consistency.report.ConsistencyReporter.dispatchReference(ConsistencyReporter.java:109) 
    at org.neo4j.consistency.report.PendingReferenceCheck.checkReference(PendingReferenceCheck.java:50) 
    at org.neo4j.consistency.store.DirectRecordReference.dispatch(DirectRecordReference.java:39) 
    at org.neo4j.consistency.report.ConsistencyReporter$ReportInvocationHandler.forReference(ConsistencyReporter.java:236) 
    at org.neo4j.consistency.report.ConsistencyReporter$ReportInvocationHandler.dispatchForReference(ConsistencyReporter.java:228) 
    at org.neo4j.consistency.report.ConsistencyReporter$ReportInvocationHandler.invoke(ConsistencyReporter.java:192) 
    at $Proxy17.forReference(Unknown Source) 
    at org.neo4j.consistency.checking.OwnerChain.check(OwnerChain.java:143) 
    at org.neo4j.consistency.checking.PropertyRecordCheck.checkChange(PropertyRecordCheck.java:57) 
    at org.neo4j.consistency.checking.PropertyRecordCheck.checkChange(PropertyRecordCheck.java:35) 
    at org.neo4j.consistency.report.ConsistencyReporter.dispatchChange(ConsistencyReporter.java:101) 
    at org.neo4j.consistency.report.ConsistencyReporter.forPropertyChange(ConsistencyReporter.java:382) 
    at org.neo4j.consistency.checking.incremental.StoreProcessor.checkProperty(StoreProcessor.java:61) 
    at org.neo4j.consistency.checking.AbstractStoreProcessor.processProperty(AbstractStoreProcessor.java:95) 
    at org.neo4j.consistency.store.DiffRecordStore$DispatchProcessor.processProperty(DiffRecordStore.java:207) 
    at org.neo4j.kernel.impl.nioneo.store.PropertyStore.accept(PropertyStore.java:83) 
    at org.neo4j.kernel.impl.nioneo.store.PropertyStore.accept(PropertyStore.java:43) 
    at org.neo4j.consistency.store.DiffRecordStore.accept(DiffRecordStore.java:159) 
    at org.neo4j.kernel.impl.nioneo.store.RecordStore$Processor.applyById(RecordStore.java:180) 
    at org.neo4j.consistency.store.DiffStore.apply(DiffStore.java:73) 
    at org.neo4j.kernel.impl.nioneo.store.StoreAccess.applyToAll(StoreAccess.java:174) 
    at org.neo4j.consistency.checking.incremental.IncrementalDiffCheck.execute(IncrementalDiffCheck.java:43) 
    at org.neo4j.consistency.checking.incremental.DiffCheck.check(DiffCheck.java:39) 
    at org.neo4j.consistency.checking.incremental.intercept.CheckingTransactionInterceptor.complete(CheckingTransactionInterceptor.java:160) 
    at org.neo4j.kernel.impl.transaction.xaframework.InterceptingXaLogicalLog$1.intercept(InterceptingXaLogicalLog.java:79) 
    at org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog$LogDeserializer.readAndWriteAndApplyEntry(XaLogicalLog.java:1120) 
    at org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.applyTransaction(XaLogicalLog.java:1292) 
    at org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.applyCommittedTransaction(XaResourceManager.java:766) 
    at org.neo4j.kernel.impl.transaction.xaframework.XaDataSource.applyCommittedTransaction(XaDataSource.java:246) 
    at org.neo4j.com.ServerUtil.applyReceivedTransactions(ServerUtil.java:423) 
    at org.neo4j.backup.BackupService.unpackResponse(BackupService.java:453) 
    at org.neo4j.backup.BackupService.incrementalWithContext(BackupService.java:388) 
    at org.neo4j.backup.BackupService.doIncrementalBackup(BackupService.java:286) 
    at org.neo4j.backup.BackupService.doIncrementalBackup(BackupService.java:273) 
    at org.neo4j.backup.OnlineBackup.incremental(OnlineBackup.java:147) 
    at Saddahaq.User_node$.backup_data(User_node.scala:1637) 
    at Saddahaq.User_node$.main(User_node.scala:2461) 
    at Saddahaq.User_node.main(User_node.scala) 
+0

плз паста StackTrace из NPE и список параметров конфигурации вы передаете в при создании экземпляра ГРАФОВОЙ БАЗЫ ДАННЫХ. –

+0

@StefanArmbruster Отредактировал вопрос с помощью stacktrace – yAsH

ответ

2

После того, как резервное копирование принято, поддерживаются целевой проверяются для консистенции NCY. Инкрементная версия проверки целостности в настоящее время страдает от ошибки, ведущей к наблюдаемому NPE.

Временное решение: либо всегда полные резервные копии с backup.full или предотвратить последовательность проверки на инкрементных резервных копии с помощью

backup.incremental(backupPath.getPath(), false); 
+0

Это работало для Neo4j Enterprise Edition 1.9.4. Но у меня есть искушение «Исключение в потоке» main «org.neo4j.com.ComException: клиент не смог подключиться к/127.0.0.1:6362» для версии 1.8.3 предприятия Neo4j. – yAsH

Смежные вопросы