标签:class size 初始化 style 服务器 不同的 ejb3.0 会话状态 序列化 生命周期 ejb
大型业务系统面临的主要问题就是高并发性和事务访问,客户端的数量与服务器端的分布式对象数量存在一定程度的正比关系,客户端数量越多,服务器端分布式对象也就越多,如何解决这种高并发的问题也就成了企业级架构首先要解决的问题。EJB作为一种服务器端分布式组件,为我们提供了应对策略。EJB提供了两种管理大量分布式对象的策略:实例池化和激活。下面分别对EJB组件模型中的三种模型进行一些分析。
stateless session bean的生命周期由三个不同的状态来组成。不存在,池化状态以及就绪状态。不存在就说明bean class的实例还没有初始化,池化状态就说明实例已经初始化了,但是还没有与EJB Obejct关联(骨架),就绪状态说明实例已经于EJB请求关联了,可以为客户提供服务了。
同样的道理,EJB容器也为每一个MDB class维护一个实例池,当有消息发送到此MDB订阅的目的地时,EJB容器就会挑选一个MDB class的实例来接受和处理消息。
与stateless bean 和MDB不同,Statefull session bean采用激活机制来实现,为什么采用激活机制来实现,是因为有状态的会话bean要维护于客户端的会话状态,每个实例只能服务于同一个客户端。
MDB采用激活机制来降低服务器资源的消耗,当EJB容器资源不够的时候,它就会选择一些能被钝化的实例,将其序列化到磁盘上,当需要的时候,再将其从磁盘恢复到内存中。
EJB3.0中的session bean以及MDB解析,码迷,mamicode.com
标签:class size 初始化 style 服务器 不同的 ejb3.0 会话状态 序列化 生命周期 ejb
原文地址:http://blog.csdn.net/aboy123/article/details/24587133