2009-05-06 4 views
0

다음과 같이 표준 양방향 복제를 수행하려고합니다. 그러나 NullReferenceException이 발생합니다. 이것은 별도의 복제 프로젝트입니다. 이 복제 프로젝트에서 원래 프로젝트 (예 : Item, Category 등)에 관련된 클래스를 가져 왔습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?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을 (복제 기능 내부의 문제가 될 것 같다 내가 VS를 사용하여 디버깅 할 경우에, 나는 changedObjects 모든 변경된 오브젝트를 가지고 있음을 볼 수있다).

답변

0

UUID와 버전 번호로 데이터베이스를 설정하는 것을 잊어 버린 것 같습니다. official documentation :

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