why pool stateless bean?

拥有回忆 提交于 2020-02-02 06:36:20

问题


Normally we use singleton instance for business / dao layer. What is the reason behind pooling stateless session beans in case of EJBs?


回答1:


The "stateless" in the name refers to session conversation state, i.e. state that persists between invocations of the bean, retained for the duration of the session. However, stateless session beans are still permitted to have instance variables. Those instance variables should not relate to the conversation state, but are "shared" between clients.

In other words, stateless session beans are not guaranteed thread safe.

As a result, the container should ensure that only one thread is executing a given instance of a stateless session bean at one time, hence the need for a pool of them.




回答2:


  • Because they are expensive to construct, often requiring access to external resources like databases, message queues etc..
  • Because you don't want an unbounded number of them being created or else you will run out of resources
  • So that the container can manage thread safety for you


来源:https://stackoverflow.com/questions/1728447/why-pool-stateless-bean

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!