Gary, unfortunately option 2 doesn't really work either. I believe there's a problem with updating entity/table SessionInfo by several concurrent nodes trying to share it. The exception is 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]
This happens every time another node updates the shared SessionInfo entity before the current node has a chance to commit its current transaction.
I was hoping something like clustering by Terracotta would work, but have run into issues trying to integrate jBPM5 with Terracotta.
Have you had any success in making jBPM5 highly available? Please share your current status.