JiveJdon Community Forums
在线361人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 6 回复 / 1
 发表新帖子   回复该主题贴
jamesdusun

悄悄话
发表文章: 4
注册时间: 2004年09月12日 13:31
关于instance pool的疑问 2004年09月12日 13:54 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 对象池(31)     
如果比较entity bean和stateful session bean的状态图,就会发现stateful session bean没有pooled状态。为什么会这样?

先说一下我对stateful session bean的理解:当stateful session bean被passivate时,他的状态会被串行化到二级存储器中,而bean实例会从内存中被消除。当这个passivated bean需要被重新激活时,重新构造bean实例,然后反串行化bean的状态。不知道我的理解是否正确?

我的疑问是:为什么不将被passivate的stateful session bean实例(我这里说的只是bean实例,其状态仍然被串行化到二级存储器中)放到一个pool中,如entity bean一样,这用也可以用少数的bean实例服务于多个EJBObject.

希望能有高手解惑
多谢了
banq

悄悄话
发表文章: 9484
注册时间: 2002年08月03日 17:08
Re: 关于instance pool的疑问 2004年09月13日 16:49 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
stateful session bean正如它的名字一样,是有状态,所谓有状态就是有数据,这些数据是某个客户端私有的,所以必须使用cache支持。

我一直努力让初学者理解cache和Pool的区别,一旦掌握,Session Bean等就容易理解,我的书籍《Java实用系统开发指南》中第5章,就是从cache和Pool介绍EJB,而不是象其他书籍从RMI和Corba这样网络玄妙概念开始的。
jamesdusun

悄悄话
发表文章: 4
注册时间: 2004年09月12日 13:31
Re: 关于instance pool的疑问 2004年09月15日 18:16 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
多谢答复,

但我的问题好像并没有被解释,我还是不太明白,能再往深里解释一下么,谢谢了。
yanbuhan

悄悄话
发表文章: 16
注册时间: 2004年09月15日 19:26
Re: 关于instance pool的疑问 2004年09月15日 19:31 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
其实banq先生已经说的很清楚了。
Cache的为某一用户专用。
Pool的为所有用户共用。
有状态EJB,它与某一特定用户绑定,所以只能用cache
而实体EJB呢,为所有用户共同使用,所以可以用Pool.

不知道说的对不对。
banq

悄悄话
发表文章: 9484
注册时间: 2002年08月03日 17:08
Re: 关于instance pool的疑问 2004年09月16日 09:26 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
是的,无态Session Bean是Pool,有态Session Bean是cache,而实体bean则是Pool + cache

Pool想像成一个容器、池,而cache则是一个堆栈或列表。这设计EJB原理,具体解释起来会很长。但是理解这个对使用EJB很重要。

jamesdusun

悄悄话
发表文章: 4
注册时间: 2004年09月12日 13:31
Re: 关于instance pool的疑问 2004年09月17日 15:01 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
首先谢谢二位

说一下我对stateful session bean的理解:当stateful session bean被passivate时,他的状态会被串行化到二级存储器,也就是硬盘中,而bean实例会从内存中被消除。当这个passivated bean需要被重新激活时,重新构造bean实例,然后反串行化bean的状态。不知道我的理解是否正确?

你们的意思是不是当stateful session bean被passivate时,他的状态会被串行化到cache而不是硬盘中?如果是这样的话,我觉得就违背了passivate本来的意义,我理解passivate的意义就是为了减少过多的内存消耗,当容器发现内存占用过大的时候,暂时将处于非活动状态的bean放到硬盘上,等需要这个bean服务的时候再取到内存中。如果串行化到cache中就不要做passivate好了,就以bean实例的形式放在内存中不是更省事?
jacobzheng

悄悄话
发表文章: 4
注册时间: 2004年09月13日 17:52
Re: 关于instance pool的疑问 2004年09月27日 17:18 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
其实不矛盾,对于statefulSB来说,他是放在cache内部的,因为cache是可以保持状态的,所以statefulSB有状态,所以可以用passivate and active 方法从把对象在内存和硬盘之间相互置换。然而 statelessSB它的对象放置在pool里面的,因为pool是共享的,所以在statelessSB运用
passivate and active 是没有必要的。
这个主题有 6 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam