CMP are not necessarily designed for bulk data access ;-).
However you can improve things by:
switching to I think 2.4.3 or 2.4.4 and using readahead (so all beans are loaded in one sql call) ( think readahead is only in 2.4.3, I'm not quite sure. I also don't know its status in 3.0 w/cmp2)
Making sure your jvm heap and physical memory are sufficient to hold all entity beans at once.
Making sure your entity cache sizes are large enough to hold all entity beans at once.
Implementing an isModified method in your entity beans so the container won't try to write them back to the db. Possibly there is a read-only setting that would also help.
After all this you may decide it is easier to do the work with straight jdbc in a session bean.
in fact I've tried read-ahead but it failed (you must infomed by advising me to upgrade my app-server).
I've already updated the run.sh script to get enough memory!!!
I must change the default max size for the pool!!!
I'll try to add this isModified method but why the CMP engine could think that my entity was modifed (a simple getId() can't change it). So this is a JAWS problem isn't it ?
I thought about using one stateless session bean but can i have access to the meta data from the CMP engine (to obtain connections directly without hardcoding connection infos or reinventing another abstraction layer)
thanks a lot