Hibernate version:2.1.6
Mapping documents: not relevant
Code between sessionFactory.openSession() and session.close(): not relevant
Name and version of the database you are using: MySql (prolly not relevant)
Debug level Hibernate log excerpt: Not relevant
How "safe" is the following general situation? (ie anything outside of worrying about situations not covered by read committed)
--using hibernate
--using secondary cache
--using long cache timeouts
--in a clustered environment
--using nonstrict-read-write
--the cluster is the only user of the database
--actively changing data
--using versioning for optimistic locking
--every transaction starts and closes a session
--its rare for two threads/processes to be working on the same data
--the areas where it is common for two threads/processes to be working on the same data, db row locking is used at the beginning of a transaction
It is my understanding that this should be safe because:
--the secondary cache is the only user of the database and this negates the need for worrying about consistency between the cache and the database even when using nonstrict-read-write in a clustered environment.
--with nonstrict-read-write the cache maintains read committed in cache because changes do not make it to the cache until save, update, or saveOrUpdate is called. (is this true??)
--optimistic locking and versioning catches the rare case where two threads/processes are working on the same data without any row locks and throws a HibernateException
|