A bean pool is where instances go to cool off in the summer.
On a J2EE server, if a stateless EJB is extremely busy, rather than have one instance queue up all the requests, and make everyone wait in turn for a particular method to be invoked, the J2EE server can create a bunch of instances, rather than one, to service clients.
When requests cool down, the J2EE server can remove instances from the pool, essentially telling the beans to get out of the pool, towel off, and go home. This then frees up some memory.
The 'bunch of stateless Session Beans' available to handle client requests is known as a pool.
Things get much more interesting when you talk about the pool of entity beans that sit idle waiting to be assigned a state, but that's another story.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com