Apologies for following up my own post...
 
I carried out a simple test and found that transaction isolation is not
maintained.  Also, the cache is not flushed in the event of a
transaction being rolled back.
 
The sequence of events was:
 
Thread A: start transaction
Thread A: select value ("1" is returned)
Thread A: update value to "2"
Thread A: select value ("2" is returned)
 
        Thread B: select value ("2" is returned - not "1")
 
Thread A: rollback transaction
Thread A: select value ("2" is returned - not "1")
 
Is this the expected behaviour?
 
If not, what might I be doing wrong?  If so, how do people deal with
this behaviour?
 
Thanks for any advice,
 
 
Alistair.

________________________________

From: Young, Alistair 
Sent: 12 January 2009 10:54
To: user-java@ibatis.apache.org
Subject: iBATIS caching / transaction isolation question


Hello all,
 
I wonder if somebody could clarify for me how iBATIS caching works with
regards to transaction isolation.
 
Suppose I have a cache set up with is used when a "selectAllItems"
statement is invoked, and flushed when an "updateItem" statement is
invoked.
 
Suppose then that thread A starts a transaction, invokes updateItem and
then selectAllItems.  Then, before thread A completes the transaction,
thread B invokes selectAllItems.
 
Is transaction isolation maintained, or does thread B end up seeing the
(uncommitted) data that thread A has updated?
 
I should add that I haven't actually tried this yet - but I'd like to
know what the expected behaviour is before getting stuck in.
 
In our particular use case, we're making use of a custom
TransactionConfig (which is essentially the same as "EXTERNAL" but
handles connection creation slightly differently).  And we're not making
any explicit calls to the iBATIS transaction methods.
 
Many thanks!
 
 
Alistair.
 
 


Please help Logica to respect the environment by not printing this email  /  
Merci d'aider Logica à préserver l'environnement en évitant d'imprimer ce mail 
/  Bitte drucken Sie diese Nachricht nicht aus und helfen Sie so Logica dabei 
die Umwelt zu schuetzen  /  Por favor ajude a Logica a respeitar o ambiente não 
imprimindo este correio electrónico.



This e-mail and any attachment is for authorised use by the intended 
recipient(s) only. It may contain proprietary material, confidential 
information and/or be subject to legal privilege. It should not be copied, 
disclosed to, retained or used by, any other party. If you are not an intended 
recipient then please promptly delete this e-mail and any attachment and all 
copies and inform the sender. Thank you.

Reply via email to