I think there might be a problem with trying to share the same Knowledge Session across the cluster. I tried doing so and observed the following issue. A node tries to commit a transaction and finds out that entity SessionInfo has been updated by another transaction. The exception looks as follows:
Hibernate: update SessionInfo set lastModificationDate=?, rulesByteArray=?, startDate=?, OPTLOCK=? where id=? and OPTLOCK=?
Sep 7, 2011 10:39:34 PM org.drools.persistence.jta.JtaTransactionManager commit
WARNING: Unable to commit transaction
javax.persistence.OptimisticLockException
: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.drools.persistence.info.SessionInfo#1]
It should be noted that it's just a warning, but I'm not sure if the necessary updates are re-attempted in order to persist the state accuratly.