Data concurrency is a complex subject and usually it is achieved through specific database technologies and transaction isolation levels. However there are other vendor specific strategies. WebLogic for example has four concurrency strategies:
Exclusive
Database
Read-only
Optimistic
The default is the database concurrency strategy, which will delegate the responsibility of data locking to the underlying database system. The optimistic strategy enforces concurrency using the classic client/server approach of ensuring that the data have not been changed by other clients during the transaction. This of course works only with CMP and for each update the container will issue a query like this: