Hi EJB guru
Can anyone express his opinion on which commit option is better ?
Personally, commit option A sound reduce concurrency, option C seems provide better concurrency but on the other hand, it may increase data retrieval.
Can l say, if there are few data contention, it should be more efficient to use commit option C. Conversely, commit option A will be better ?
Please kindly offer your insight into this issue
Thats a very hard question to answer. It depends on so many things including your application, your hardware and the container implementation.
The brief review you have done is correct. Commit Option A is less I/O intensive yet suffers from concurrency issues (keep in mind most of the concurrency issues deal with times when you access the container outside the EJB container. In theory Commit Option A should hand you the idle instance which is very fast). Commit Option C is more I/O intensive yet more concurrent (same disclaimer).
The bigger issue in my mind with Commit Option A is that BOTH the container and the persistant store end up placing locks. Thats wasted work in my view. The RDBMS is there to maintain consistancy, let it do its job.
The Scupper Group
dave at scuppergroup dot com