i agree this is a problem. the OTM is designed to solve this problem. Oleg, Raghu and 
I are working on this (mostly Oleg :))

m

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 01, 2003 10:37 AM
To: [EMAIL PROTECTED]
Subject: Default Cache - bug? design catostrophe? user error?


Consider this: I'm uing ObjectCacheDefaultImpl

1) I have an A which contains (has a reference to) a B.
2) B has a name property.
3) When I load A (oid=1), B(oid=2) gets loaded.
4) Now the cache looks like this { A(1)[B(2)], B(2) } ( A is in the cache,
and refers to B.  B is in the cache).
5) I begin a transaction, and lock B(2) into it so I can change it's name.
6) I change it's name.
7) Something happens, and the transaction is rolled back.
8) B gets flushed from the cache, because the name it has is now invalid.
{ A(1)[B(2)] } (A is in the cache and refers to B).
9) I know load B(oid=2) and get B'  The cache is { A(1)[B(2)] B'(2) }

B and B' now refer to the same logical object (oid=2), but they have
different name values.  Depending on how I happen to access the code
(direct load of B vs. asking A for it's B), I get two entirely different
results.

This seems to me like a *very* serious problem.   The only solution I can
see (and it is not without consequences) is to not cache the actual object,
but to cache the columnar data for the object, and then reconstruct the
object "on demand".

David



This message contains information from Equifax Inc. which may be
confidential and privileged.  If you are not an intended recipient, please
refrain from any disclosure, copying, distribution or use of this
information and note that such actions are prohibited.  If you have
received this transmission in error, please notify by e-mail
[EMAIL PROTECTED]



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


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

Reply via email to