You can pass a defragmentation listener to the defragmentation process. This listener will be notified when there's no object for an id in the database. This means that a object has a reference to a non-existing object. This happens when you delete objects which are still referenced by other objects.
private class DefragmentListener : IDefragmentListener { public void NotifyDefragmentInfo(DefragmentInfo defragmentInfo) { Console.WriteLine(defragmentInfo); } }
Private Class DefragmentListener Implements IDefragmentListener Public Sub NotifyDefragmentInfo(ByVal defragmentInfo As DefragmentInfo) _ Implements IDefragmentListener.NotifyDefragmentInfo Console.WriteLine(defragmentInfo) End Sub End Class
DefragmentConfig config = new DefragmentConfig("database.db4o"); Defragment.Defrag(config, new DefragmentListener());
Dim config As New DefragmentConfig("database.db4o") Defragment.Defrag(config, New DefragmentListener())