Now, I access the getCustomerId of such an entity bean instance from an MDB that is enrolled in a "Required" type CMT. The transaction rolls back due to a timeout. However, that entity bean instance seems to be locked, when the MDB tries to re-process the message.
I am of the opinion that read-only methods will release transactional locks at the end of the invocation. I am not sure why it holds up when the transaction rolls back.