This forum has been archived. Please start a new discussion on GitHub.

Evictor Recreates Servant Unnecessarily?


Just wondering if anyone has seen behavior where an evictor "evicts" an object when first saved. What I *think* is happening is that after an object has been added to the evictor, the saving thread correctly saves the object to the database, but in the process, it seems to delete the object and the recreate it from the database, or perhaps it just makes a copy. Either way, the servant found by the evictor has a different address than the one initially created.

The evictor should have plenty of space in it, so it shouldn't need to delete/recreate.

If you have seen anything like this, do you have any ideas on what might be going on?

Thanks for any thoughts,


  • benoit
    benoit Rennes, France
    Hi Andrew,

    I tried to see if I could reproduce this with the demo/Freeze/library demo (with the Ice for C++ and Java distribution) and I can't observe what you describe. Saved servants are not evicted after the save.

    They could be evicted after the save if the evictor maximum size is reached however since they become eligible to eviction after the save (see Chapter 37.5 for more details).

    Did you try to enable tracing with by setting the Freeze.Trace.Evictor property to 3? This might give you some hints on the reasons of the eviction of these objects.

  • Can't Reproduce Either


    Sorry that you spent time on this. I have also tried to reproduce this with a controlled test case, but have not yet been able to do so. This _probably_ means that there is some oversight in my code. I'll post back if I can reproduce, but I was just wondering if I was the only person who _thought_ that they saw this behavior.