2009-05-06 4 views
0

Я пытаюсь сделать стандартную двунаправленную репликацию следующим образом. Однако я получаю исключение NullReferenceException. Это отдельный проект репликации. Я импортировал классы, участвующие в исходном проекте (например, Item, Category и т. Д.) В этом проекте репликации. Что я делаю не так? (Если я отладки с помощью VS, я могу видеть, что changedObjects имеет все измененные объекты, кажется, есть какая-то проблема внутри функции Реплицировать)db4o Система репликации: исключение NullReferenceException?

IObjectContainer local = Db4oFactory.OpenFile(@"G:\Work\School\MIS\VINMIS\Inventory\bin\Debug\vin.db4o"); 
IObjectContainer far = Db4oFactory.OpenFile(@"\\crs-lap\c$\vinmis\vin.db4o"); ; 

IReplicationSession replication = Replication.Begin(local, far); 
IObjectSet changedObjects = replication.ProviderA().ObjectsChangedSinceLastReplication(); 

while(changedObjects.HasNext()) 
       replication.Replicate(changedObjects.Next()); // Exception!!! 
replication.Commit(); 

changedObjects = replication.ProviderB().ObjectsChangedSinceLastReplication(); 
while (changedObjects.HasNext()) 
       replication.Replicate(changedObjects.Next()); 
replication.Commit(); 

С уважением,

Саурабх.

ответ

0

Похоже, вы забыли настроить свои базы данных с помощью UUID и номеров версий. От official documentation:

public static IConfiguration ConfigureReplication() 
{ 
    IConfiguration db4oConfig = Db4oFactory.NewConfiguration(); 
    db4oConfig.GenerateUUIDs(ConfigScope.Globally); 
    db4oConfig.GenerateVersionNumbers(ConfigScope.Globally); 
    return db4oConfig; 
}