In our application, we are just carrying out the following operations:
1. Invoke the Application URL.
2. Login using the valid username/password
3. Click on a tab to navigate to read-only page
4. Click on a link to retrieve the concerned data.

All the operations in this navigation are Read-only operations but a large number of entities are updated.

We have observed that,

1. Large number of transactions even though the operations are RO.

2. Unexplained update statements.

The concurrency is seriously hampered because of optimistic locking exception.

I am unable to attach the complete logfile, but here are the excerpts from the logfile:

The application seems to be making changes to objects within transactions. How are these operations marked as Read-only? EclipseLink uses minimal updates, so what ever is included in an update statement was changed within the objects - hopefully you can find in the application where it is changing the values mapped to EXTERNAL_SYSTEM_IDENTIFIER, EXTERNAL_IDENTIFIER to null and the LAST_UPDATE_DATE to 2010-03-30 on the object with ID 11052.

Also, how is your application managing the transactions? If it is read only, it seems some methods are wrapped in transactions that shouldn't be.