Yes there is a configuration, and yes it deals with checking if the entity status had changed from the last read before updating. BUT you have to make real jumps and wish big time in order to deal with what happens when the update fails. According to what I've seen.
A. No real answer from JBoss.
B. The exception thrown is plain EJBException so you cannot tell if the rollback was due to an "update fail" or something else like any other applicative or system error. OTHER J2EE servers do support this better.
Handling the cache is another drawback - you have to choose between ditching the cache in optimistic or having deadlocks in pessimistic. No other solution is given from JBoss, one that is really documented and tested.
I like JBoss but I get no answers and the answers I do have/read are not good enough.
I hope I am wrong :(