2009-05-06 22 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(); 

よろしく、

Saurabhを。

答えて

0

UUIDとバージョン番号でデータベースを設定するのを忘れてしまったようです。 official documentationから:

public static IConfiguration ConfigureReplication() 
{ 
    IConfiguration db4oConfig = Db4oFactory.NewConfiguration(); 
    db4oConfig.GenerateUUIDs(ConfigScope.Globally); 
    db4oConfig.GenerateVersionNumbers(ConfigScope.Globally); 
    return db4oConfig; 
} 
関連する問題