会话(session)bean的介绍
会话bean能够完成客户所需要的业务操作。作为业务对象,会话bean能够实现业务逻辑,业务规则,算法,工作流等。比如会话bean能够完成查价,订单登记,食品压缩,银行事务,股票交易,数据库操作,复杂计算等。而且会话bean是可重用的组件,供操作业务流程中的逻辑使用。
会话bean的生命周期
会话bean不是持久化的,它仅仅是内存对象,会话bean不会保存到持久化存储源中,一旦其生存的周边环境遭到破坏,会话bean也将不复存在。通常客户会话的(Client Session)的持续其决定了使用的会话bean的存活期,如果客户超时EJB容器将销毁会话bean实例,会话bean实例是存活短暂的对象,并且会话bean实例不能够在多客户间共享。
会话bean的子类型
会话bean有两种子类型:有状态会话bean和无状态会话bean(区别上一篇中将过了)
有状态会话bean
实现实例池功能:EJB容器为了限制内存中运行的有状态会话bean实例的数量,EJB容器需要将有状态会话bean的会话状态保存到硬盘或者其它存储源中,该过程称之为挂起(Passivation)。在挂起有状态会话bean后,会话状态会被安全的保存下来,而且其释放的内存可以供其他应用(或EJB实例)使用。一旦被挂起的有状态会话bean实例的客户再次调用它,被挂起的会话状态将重新回到有状态的会话bean实例中,该过程称之为激活(Activation)。现在有状态会话bean实例恢复了同原先客户的会话。但是激活的有状态会话bean实例不一定是服务于原先客户的那个实例,但并不影响使用。
EJB实例也具有有状态会话bean的实例池功能,在处理多个并发客户时,只需要在内存中存活若干个有状态会话bean实例。代价是挂起和激活过程将导致I/O性能瓶颈。维护无状态会话bean实例池是十分简单的,因为没有会话状态需要维护。无状态会话bean不存在挂起和激活操作,EJB容器可以随心所欲的销毁它。
EJB容器会挂起和激活哪个有状态会话bean实例? 这取决于EJB容器。
大部分容器使用最近最少使用(Least Recently Used LRU)策略,及简单的挂起最近没有使用到的有状态会话bean实例。如果有状态会话bean实例最近没有使用到,则EJB容器会挂起它,从而将会话状态保存到硬盘上。只要有状态会话bean实例没有参与到客户请求中,容器就能够随时挂起它。
为激活有状态会话bean实例,大部分EJB容器都会使用just-in-time算法,即只有在客户请求到来时,才会激活有状态会话bean实例。如果客户请求传到EJB容器中,而且容器已经挂起了该客户的会话状态,则容器马上激活它,从而将挂起状态信息写到内存中。
分享到:
相关推荐
JavaEE5学习笔记05-EJB之会话Bean总结...
NULL 博文链接:https://fruitking.iteye.com/blog/562868
实战EJB之三 开发会话Bean(有状态会话Bean).doc
第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。
第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。
广东工业大学Java EE Web编程技术课程实验,使用JBoss,实现EJB技术中的会话Bean,简单的Helloworld。
介绍EJB入门基础,详细介绍会话BEAN.
第2篇重点关注EJB编程的具体内容和过程,其中,研究了如何开发如下三种EJB组件:会话Bean、实体Bean和消息驱动Bean。具体内容包括开发各种EJB组件的基础知识(结合开发实例)、组件生命周期的详细阐述;第3篇是本书最为令...
EJB3示例 有状态和无状态会话bean,其中Test.jsp页面是用于测试远程无状态会话bean页面,可放到时其它web项目中访问,但于分布式测试。
EJB3.0的源代码,包含会话Bean,实体Bean,还有消息Bean
第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。
试验目的:通过对简单会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。 试验任务:设计一个会话Bean,进行计数。将当前的计数值存储在Bean中,当客户端请求时,调用计数函数,进行计数累加...
NULL 博文链接:https://diaochenlong2.iteye.com/blog/1846828
java ee 6 ejb的一些实例: 包括 有状态会话bean 无状态会话bean 单身会话bean 消息驱动bean 实例
该示例使用Eclipse 3.3 Europa IDE、JDK 6.0、GlassFish 2.0翻写的第一个EJB 3.0会话bean应用。注意:必须首先安装GlassFish服务器,可以通过安装NetBean 6.0(M9)来完成安装该服务器,或能单独安装也行,然后在...
试验目的:通过对简单无状态会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。 试验任务:根据EJB组件的结构体系和运行机理,编写实现显示“Hello,+班级+姓名!”的无状态会话Bean组件,并...
环境:Window XP profession, JDK 1.6, MySQL 5.0, JBoss...该示例使用EJB 3.0的无状态会话Bean呼叫JPA持久层完成数据库的操作,推荐广大企业级Java程序员项目中使用。 注意:连接池的配置参见上一个资源readme.txt文档
Weblogic EJB 学习笔记 ejb 基础知识 EJB 组成 EJB 配置描述器 建立ejb 档案文件 容器管理的事务 ejb 引用
EJB之消息驱动Bean的总结。ejb 消息驱动Bean j2ee jms java
(1) 无状态会话bean 不保存客户机的会话状态 优点:使用小量的实例即可满足大量的客户。每个实例都没有标识,相互之间是等价的。 等?的无状态会话bean: 多次和一次调用的结果和效应相同。 在...