Hello,

I have noticed strange behaviour, It occurs every time. I use DefaultCacheImpl 
and implicit write locking. I do something like this:

1. tx.begin (odmg trans)

        retrieve object

        remove the object from cache

        modify the object (insert into it's list new sub objects)

        writelock the object

2. tx.commit


After that everything goes well to the DB including newly added subobjects, 
but  the modification is not seen in some cases so after commit I added:

3. remove the object and its subobjects from cache. 

And now new subobjects are not stored in DB but these that was modified are 
stored with modifications.

When I remove from cache only subobjects and not the main object in point 3, 
then everything is OK. Also other way to make it work is to explicitly write 
lock all sub objects.

This is strange because before in point 2 I invoke commit() which should store 
changes in DB, then in my understanding anything I put after point 2 should 
not affect my transaction.

Regards.

-- 
----------------------------------
Łukasz Korzybski, [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to