The creation and destruction of beans in pool is an expensive task. To reduce this cost, the J2EE Container creates pool of beans, so you need to give optimal pool size for better performance; you can set this pool size (initial beans and maximum beans in pool) in your application server settings.

The maximum number of beans in the pool effects performance. If this number is less then required, then the Container has to put the messages in the wait mode in the JMS server when the number of messages arriving are more than the max pool size. It makes the performance poor and takes more time to execute. So to achieve best performance, give maximum beans in the pool as equal to expected number of maximum concurrent messages.