The DefaultCache is a global cache that does not isolate broker transactions. You can use other cache implementations (like the PerBrokerCache) that isolate transactions.
We hope get those issues fixed till 1.0 Thomas > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 01, 2003 9:28 PM > To: OJB Users List > Cc: OJB Users List > Subject: RE: Default Cache - bug? design catostrophe? user error? > > > > Well, that DOES work, but in a multi-user environment, I > would consider > this fairly drastic. Of course, if my other option is to not > have a cache > at all.... > > > > > > |---------+---------------------------> > | | "Scott Howlett" | > | | <[EMAIL PROTECTED]| > | | .com> | > | | | > | | 04/01/2003 01:40| > | | PM | > | | Please respond | > | | to "OJB Users | > | | List" | > | | | > |---------+---------------------------> > > >------------------------------------------------------------- > -------------------------------------------------------------- > -----------------------| > | > > | > | To: "OJB Users List" <[EMAIL PROTECTED]> > > | > | cc: > > | > | Subject: RE: Default Cache - bug? design > catostrophe? user error? > | > | > > | > > >------------------------------------------------------------- > -------------------------------------------------------------- > -----------------------| > > > > Could you flush the cache whenever you rollback a transaction? > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 01, 2003 1:37 PM > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
