`

Stateful Session Bean 示例和注意点

阅读更多

(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

    标题"Stateful--sessionbean.zip_sessionBean_stateful"表明这个压缩包包含有关有状态会话Bean的实现资料,可能包括设计思路、步骤截图和源代码。这些资源对于理解如何创建和使用SFSB至关重要。 描述中的"有状态的...

    Session Bean的使用

    JavaBean和Session Bean是Java企业级应用开发中的重要概念,特别是在使用Enterprise JavaBeans(EJB)技术时。本文将深入探讨这两个概念,以及如何在实际项目中使用它们。 首先,让我们了解什么是JavaBean。...

    Java EJB中有、无状态SessionBean的两个例子.rar

    - 无状态SessionBean示例:同样包含一个Java类和接口,但这个类不会存储任何客户端特定的信息。测试代码可能展示了如何在高并发环境下使用SSB,以展示其效率。 - Swing程序:Swing是Java的一个图形用户界面(GUI)...

    EJB3.0开发Session Bean.rar

    - **有状态Session Bean (Stateful Session Bean)**:每个客户端请求对应一个特定的实例,保存了客户端的状态,适用于购物车、游戏等需要跟踪用户状态的场景。 - **Singleton Session Bean**:整个应用生命周期中...

    EJB的开发及应用,Session Bean的开发

    与Stateful Session Bean(有状态会话Bean)不同,它维护了客户端会话状态,而Stateless Session Bean(无状态会话Bean)则不保留任何客户端状态,每次调用都独立于其他调用。Session Bean主要用于表示业务逻辑,...

    itfuture_sessionbean

    "itfuture_sessionbean"的第二部分可能是指一系列教程或学习资料,聚焦于深入理解Session Bean的使用和实现。JBulider作为标签,表明这些材料可能与使用JBulider这一集成开发环境(IDE)来创建和管理Session Bean...

    Java EJB中有、无状态SessionBean的两个例子.7z

    根据其设计模式,Session Bean分为有状态(Stateful Session Bean)和无状态(Stateless Session Bean)两种类型。本压缩包文件提供了这两个类型的实例,让我们深入探讨它们的概念、用途以及如何在实际应用中使用。 ...

    ejb sessionbean demo

    在"ejb sessionbean demo"中,我们主要探讨的是如何使用EJB的Session Bean进行开发和演示。Session Bean通常用于实现业务逻辑,它们可以是无状态的,意味着每个请求都会创建一个新的Bean实例,不保留任何先前会话的...

    java源码:Java EJB中有、无状态SessionBean的两个例子.zip

    本压缩包提供了两个关于Java EJB中状态ful(有状态)和stateless(无状态)SessionBean的实例,帮助开发者深入理解这两种类型的Bean。 一、有状态SessionBean(Stateful Session Bean) 有状态SessionBean(SFSB,...

    ejb入门录像 sessionBean

    【ejb入门录像 sessionBean】是针对企业级Java应用(Enterprise JavaBeans,简称EJB)技术的初学者设计的一段教学视频。EJB是Java EE(Java Platform, Enterprise Edition)框架的重要组成部分,它提供了一种标准的...

    Java EJB中有、无状态SessionBean的两个例子.zip_1H1_Java EJB_UOL

    通过这两个示例,你可以学习如何在实际项目中创建和使用这两种类型的Session Bean,以及它们在处理并发请求和资源管理方面的差异。有状态Session Bean在处理并发时需要特别注意,因为它们必须确保同一时间只有一个...

    基于Java的实例源码-EJB中有、无状态SessionBean的两个例子.zip

    接着,我们转向有状态SessionBean(Stateful Session Bean)。与无状态SessionBean相反,有状态SessionBean能够保留与特定客户端交互的信息,存储了客户端的状态。这使得它更适合于需要跟踪用户购物车、游戏进度等...

    基于java的EJB中有、无状态SessionBean的两个例子.zip

    1. 有状态Session Bean(Stateful Session Bean) 有状态Session Bean(SFSB)能够保持与客户端的会话状态,即它能够记住客户端的交互历史。这种特性使得SFSB非常适合于处理需要维持购物车、用户会话或个性化数据的...

    基于Java的实例开发源码-EJB中有、无状态SessionBean的两个例子.zip

    本实例可能包含一个或多个演示程序,通过对比有状态和无状态SessionBean的使用场景和实现方式,帮助初学者理解这两种Bean的区别和应用场景。通过深入学习这些示例,你将更好地掌握如何在实际项目中运用EJB技术,提升...

    基于Java的源码-EJB中有、无状态SessionBean的两个例子.zip

    在示例中,你会看到有状态Session Bean如何通过@Stateful注解标记,并且如何在业务方法中访问和修改会话状态。同时,由于有状态bean需要跟踪状态,它们不能像无状态bean那样被池化,因此在处理高并发时需要谨慎设计...

    weblogic部署EJB2.0 实现本地接口的SessionBean

    它定义了三种主要类型的Bean:Stateless Session Beans(无状态会话bean)、Stateful Session Beans(有状态会话bean)和Message Driven Beans(消息驱动bean)。我们关注的是Session Bean,它们通常代表业务逻辑,...

    实战EJB之三 开发会话Bean(有状态会话Bean).doc

    开发一个有状态会话Bean需要继承javax.ejb.SessionBean接口,并实现相应的生命周期方法,如ejbCreate()、ejbRemove()、ejbPassivate()、ejbActivate()等。 5. 部署到应用服务器 在部署到应用服务器时,需要配置ejb...

    EJB3 示例有状态和无状态会话bean

    - **会话Bean (Session Bean)**:分为有状态和无状态两种,用于封装业务逻辑操作。 - **消息驱动Bean (Message-Driven Bean)**:处理JMS(Java Message Service)消息。 ### 2. 有状态会话Bean (Stateful Session ...

    Java EJB中有、无状态SessionBean的两个例子源码

    提供的压缩包中可能包含了两个示例,分别展示了有状态和无状态SessionBean的实现。通过查看源码,我们可以更深入地了解这两个类型的区别和用法。有状态的例子可能包含一个购物车类,其中的方法会更新和检索购物车中...

Global site tag (gtag.js) - Google Analytics