2009-05-06 6 views
0

J'essaye de faire la réplication bi-directionnelle standard comme suit. Cependant, j'obtiens une exception NullReferenceException. C'est un projet de réplication séparé. J'ai importé les classes impliquées dans le projet d'origine (tel que Item, Category etc.) dans ce projet de réplication. Qu'est-ce que je fais mal? (Si je débogage à l'aide VS, je peux voir que changedObjects n'avoir tous les objets modifiés, il semble y avoir un problème à l'intérieur fonction Répliquer)db4o Système de réplication: 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(); 

Cordialement,

Saurabh.

Répondre

0

Il semble que vous ayez oublié de configurer vos bases de données avec des UUID et des numéros de version. De la official documentation:

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