| 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
 
 
 |