Suppose a CMP entity bean called EntityBeanA contains a map and a method called modifyMapElement() which has transaction attribute of 'require'. If a method X()--which is already in a trasaction--of another stateless session bean invokes method modifyMapElement() to modify an element in the map, until the transaction has been either commited or rollbacked what is being locked in the entity bean to prevent data inconsistency (eg. prevent others from reading the content of the map) ? Is it the EntityBeanA or just the map or something else? If the answer is EntityBeanA, would that degrade app performance?