(1) ejb-jar.xml
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC
'-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>statefulSession</ejb-name>
<home>examples.ejb20.basic.statefulSession.TraderHome</home>
<remote>examples.ejb20.basic.statefulSession.Trader</remote>
<ejb-class>examples.ejb20.basic.statefulSession.TraderBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
<env-entry>
<env-entry-name>BEAS</env-entry-name>
<env-entry-type>java.lang.Double </env-entry-type>
<env-entry-value>100.0</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>MSFT</env-entry-name>
<env-entry-type>java.lang.Double </env-entry-type>
<env-entry-value>150.0</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>statefulSession</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
<ejb-client-jar>ejb20_basic_statefulSession_client.jar</ejb-client-jar>
</ejb-jar>
(2) weblogic-ejb-jar.xml
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN'
'http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>statefulSession</ejb-name>
<stateful-session-descriptor>
<allow-remove-during-transaction>true</allow-remove-during-transaction>
</stateful-session-descriptor>
<enable-call-by-reference>True</enable-call-by-reference>
<jndi-name>ejb20-statefulSession-TraderHome</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
没有缓冲池,需要消耗大量内存来存储。每个ejb都是唯一的。
钝化和激活(passivation, activation)
闲置超时,bean被销毁
释放remote对象的引用,使得remote对象被垃圾回收。
缓冲管理
<max-beans-in-cache>标签: 设置缓冲池多大
<idle-timeout-seconds>: 当缓冲池满了将发生什么事
<cache-type> NRU(使用数量), LRU(最近最不常用)
没有超时的,当前没有方法调用的,没有事务参与的,>=85% 钝化,销毁
>=99% 钝化,销毁
如果没有办法了,就抛出CacheFullException.
钝化Bean的时候会钝化相应的所有可到达对象,递归嵌套。
不能钝化
(1) null
(2) transient
(3) 对SessionContext的引用
(4) 对UserTransaction的引用
(5) 对 "java:comp/env" 上下文的引用
(6) 对其它EJB的Home或者Remote接口的引用
必须在ejbPassivate和ejbActivate方法中关闭和重新打开这些资源。
分享到:
相关推荐
标题"Stateful--sessionbean.zip_sessionBean_stateful"表明这个压缩包包含有关有状态会话Bean的实现资料,可能包括设计思路、步骤截图和源代码。这些资源对于理解如何创建和使用SFSB至关重要。 描述中的"有状态的...
JavaBean和Session Bean是Java企业级应用开发中的重要概念,特别是在使用Enterprise JavaBeans(EJB)技术时。本文将深入探讨这两个概念,以及如何在实际项目中使用它们。 首先,让我们了解什么是JavaBean。...
- 无状态SessionBean示例:同样包含一个Java类和接口,但这个类不会存储任何客户端特定的信息。测试代码可能展示了如何在高并发环境下使用SSB,以展示其效率。 - Swing程序:Swing是Java的一个图形用户界面(GUI)...
- **有状态Session Bean (Stateful Session Bean)**:每个客户端请求对应一个特定的实例,保存了客户端的状态,适用于购物车、游戏等需要跟踪用户状态的场景。 - **Singleton Session Bean**:整个应用生命周期中...
与Stateful Session Bean(有状态会话Bean)不同,它维护了客户端会话状态,而Stateless Session Bean(无状态会话Bean)则不保留任何客户端状态,每次调用都独立于其他调用。Session Bean主要用于表示业务逻辑,...
"itfuture_sessionbean"的第二部分可能是指一系列教程或学习资料,聚焦于深入理解Session Bean的使用和实现。JBulider作为标签,表明这些材料可能与使用JBulider这一集成开发环境(IDE)来创建和管理Session Bean...
根据其设计模式,Session Bean分为有状态(Stateful Session Bean)和无状态(Stateless Session Bean)两种类型。本压缩包文件提供了这两个类型的实例,让我们深入探讨它们的概念、用途以及如何在实际应用中使用。 ...
在"ejb sessionbean demo"中,我们主要探讨的是如何使用EJB的Session Bean进行开发和演示。Session Bean通常用于实现业务逻辑,它们可以是无状态的,意味着每个请求都会创建一个新的Bean实例,不保留任何先前会话的...
本压缩包提供了两个关于Java EJB中状态ful(有状态)和stateless(无状态)SessionBean的实例,帮助开发者深入理解这两种类型的Bean。 一、有状态SessionBean(Stateful Session Bean) 有状态SessionBean(SFSB,...
【ejb入门录像 sessionBean】是针对企业级Java应用(Enterprise JavaBeans,简称EJB)技术的初学者设计的一段教学视频。EJB是Java EE(Java Platform, Enterprise Edition)框架的重要组成部分,它提供了一种标准的...
通过这两个示例,你可以学习如何在实际项目中创建和使用这两种类型的Session Bean,以及它们在处理并发请求和资源管理方面的差异。有状态Session Bean在处理并发时需要特别注意,因为它们必须确保同一时间只有一个...
接着,我们转向有状态SessionBean(Stateful Session Bean)。与无状态SessionBean相反,有状态SessionBean能够保留与特定客户端交互的信息,存储了客户端的状态。这使得它更适合于需要跟踪用户购物车、游戏进度等...
1. 有状态Session Bean(Stateful Session Bean) 有状态Session Bean(SFSB)能够保持与客户端的会话状态,即它能够记住客户端的交互历史。这种特性使得SFSB非常适合于处理需要维持购物车、用户会话或个性化数据的...
本实例可能包含一个或多个演示程序,通过对比有状态和无状态SessionBean的使用场景和实现方式,帮助初学者理解这两种Bean的区别和应用场景。通过深入学习这些示例,你将更好地掌握如何在实际项目中运用EJB技术,提升...
在示例中,你会看到有状态Session Bean如何通过@Stateful注解标记,并且如何在业务方法中访问和修改会话状态。同时,由于有状态bean需要跟踪状态,它们不能像无状态bean那样被池化,因此在处理高并发时需要谨慎设计...
它定义了三种主要类型的Bean:Stateless Session Beans(无状态会话bean)、Stateful Session Beans(有状态会话bean)和Message Driven Beans(消息驱动bean)。我们关注的是Session Bean,它们通常代表业务逻辑,...
开发一个有状态会话Bean需要继承javax.ejb.SessionBean接口,并实现相应的生命周期方法,如ejbCreate()、ejbRemove()、ejbPassivate()、ejbActivate()等。 5. 部署到应用服务器 在部署到应用服务器时,需要配置ejb...
- **会话Bean (Session Bean)**:分为有状态和无状态两种,用于封装业务逻辑操作。 - **消息驱动Bean (Message-Driven Bean)**:处理JMS(Java Message Service)消息。 ### 2. 有状态会话Bean (Stateful Session ...
提供的压缩包中可能包含了两个示例,分别展示了有状态和无状态SessionBean的实现。通过查看源码,我们可以更深入地了解这两个类型的区别和用法。有状态的例子可能包含一个购物车类,其中的方法会更新和检索购物车中...