Система репликации db4o: исключение NullReferenceException? - PullRequest
0 голосов
/ 06 мая 2009

Я пытаюсь выполнить стандартную двунаправленную репликацию следующим образом. Тем не менее, я получаю NullReferenceException. Это отдельный проект репликации. Я импортировал классы, участвующие в исходном проекте (например, Item, Category и т. Д.) В этот проект репликации. Что я делаю неправильно? (Если я отлаживаю с использованием VS, я вижу, что в changeObjects есть все измененные объекты; кажется, что есть некоторая проблема внутри функции Replicate)

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

С уважением,

Саурабй.

1 Ответ

0 голосов
/ 27 марта 2010

Похоже, вы забыли настроить свои базы данных с UUID и номерами версий. Из официальной документации :

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