Deferred insert functionality has been added in 5.0.2 as an option. This means that when the application creates an entity bean, WAS doesn't force an insert to the DB immediately. This normally results in at least 2 statements issued to the DB, one insert followed by an update with the initial values of the CMP. Deferred insert means that now WAS just issues a single insert with the final values which is clearly faster than the previous implementation.
This enables the deferred insert/create support. Add this to the JVM command line arguments using the deployment manager.
-Dcom.ibm.ws.pm.deferredcreate=true
Batched SQL support means that WAS uses the JDBC batching to send multiple identical statements to the DB using one command. This works really well with prepared statements. As an example, lets say we have a prepared statement 'INSERT VALUES(?) INTO T'. Before, when the application issued multiple inserts using this prepared statement, each one resulted in a DB RPC. Now, WAS can combine them and send them as a unit to the DB at commit time. This can result in a significant performance boost for the right application.
This enables the SQL batching support.
-Dcom.ibm.ws.pm.batch=true
So, CMP performance continues to improve and will continue to do so. I've run recent high volume database intensive tests and found that at high TPS rates (like 1000s), WAS was only taking 5-10% of the total response time (the rest is database). So, arguably at that rate at least, eliminating WAS would only shave 10% from the response time.
So CMPs are now coming in to prime time for me and whilst they certainly can be still further improved, may surprise you right now if you are used to the 3.0/4.0 CMP implementations. The thing to remember with CMP is that it is easier to do. I groan now at the thoughts of writing JDBC directly. So long as we've optimized the types of data access patterns that your application is using then performance should be fine. As usual, it depends on the application and there is no standard answer.
Note, to clear confusion, this only works with CMP 2.0 beans on WA 5.0.2 or better.