There are multiple Cache options that offer different scopes for
transactions, along with PersistenceBrokers.  You should look at the API for
options on concurrency and transaction isolation with changing the
previously stated items in the OJB.properties.

-Jacob

| -----Original Message-----
| From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
| Sent: Tuesday, April 01, 2003 12: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]

Reply via email to