using jdbc persistence with master/slave sharing the database. If the db dies, the master dies when it sees its lock expire. unfortunately the slave also has a lockKeepalive thread that detects the db failure, even if it does not have the lock.
The lockKeepAlive thread should be used once a lock has been acquired. in this way, the slave can remain trying to acquire the lock and eventually succeed and promote its self to master when the db comes back up.