在前些天的项目里,发现一个关于WebLogic 缓存和钝化有状态会话EJB
的问题。
简单描述下:
===========================================
当cache-type
设置为NRU
的时候,按照官方文档上的描述:
Lazy Passivation (
NRU
)
When lazy passivation is configured by setting
cache-type
to NRU
, the container
avoids passivating beans, because of the associated systems
overhead—pressure on the cache is the only event that causes passivation
or eager removal of beans.
The container:
-
Removes a bean instance from cache when
idle-timeout-seconds
expires, and does not passivate it to disk. This is referred to as a eager remove
. An eager remove ensures that an inactive instance does not consume memory or disk resources.
-
Passivates instances to disk when max-beans-in-cache
is reached, even though
idle-timeout-seconds
has not expired.
懒 钝化
(NRU
)
当cache-type
被配置为NRU
的时候,容器会回避钝化Bean,因为关系到关联的系统的缓存开销,导致钝化或渴望删除Beans。
The container:
详见:摸我
图5-2
之后
=============================================================
也就是说设置成NRU时 如果超过idle-timeout-seconds
时间就会把Cache中的Bean直接干掉。图5-2
也是这么画的。
但项目中始终没有验证出这个结论----即使经过闲置时间,不管超没超过max-beans-in-cache
,也不会从Cache中删除-------开始以为项目本身的框架有一些特殊的实现导致的,后来就做了一个纯净版的ejb sample(见附件)。发现结果还是这样。
难道是Oracle的文档的问题 还是Bug,还是自己在验证中出现了什么差错? 不解!!!
后来添附上Sample 问了一下Oracle。一个月过去了,还是没有答复。
想请教一下大家,原因是什么?
为什么超过
idle-timeout-seconds
时间后没有像官方文档上描述的"直接从内存中删除Bean"?
****************************************************************************
附上相关文档说明:
cache-type
功能
指定从缓存中删除 EJB 的顺序。值包括:
示例
Controlling Passivation
The rules that govern the passivation of stateful session beans vary, based on the value of the beans cache-type
element, which can be:
-
LRU
—least recently used, or eager passivation.
-
NRU
—not recently used, or as lazy passivation
****************************************************************************
相关推荐
weblogic清缓存的shell
weblogic+ejb3.0weblogic+ejb3.0weblogic+ejb3.0weblogic+ejb3.0weblogic+ejb3.0weblogic+ejb3.0weblogic+ejb3.0
weblogic+ejb.doc weblogic+ejb.doc weblogic+ejb.doc weblogic+ejb.doc weblogic+ejb.doc weblogic+ejb.doc weblogic+ejb.doc weblogic+ejb.doc
WebLogic v9.2 EJB和JNDI Demo
比较实用的东西,具体介绍了Weblogic Ejb的使用
这里面介绍了在weblogic下如何配置ejb,还有例子
tomcat 调用weblogic EJB tomcat 调用weblogic EJB
帮助初学这在Eclipse中配置开发EJB的容器这里以weblogic的配置来说明
使用eclipse通过weblogic开发简单的ejb应用(weblogic 10.x & ejb3.x)
EJB3.0+weblogic操作文档,本人根据自己查阅资料和结合其他博客,总结了一套weblogic11g发布EJB3.0项目的文档,详细介绍如何在weblogic11g发布EJB并编写客户端java project访问。
从客户端到服务端进行剖析, 好东西不能错过,赶快行动吧。
MyEclipse 7在WebLogic 9.2下开发EJB2范例
因本人现在工作中需要到ejb2.0,考虑到现在ejb2.0资料匮乏,故整理献上。具体步骤:把项目导出jar文件,在weblogic8中部署,运行Client.java即可。由于weblogic不支持jdk1.4以上版本,请使用jdk1.4编译
Weblogic10 + EJB3入门教程,喜欢oracle公司产品的同仁共享
中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子...
一个能部署在Weblogic11g+下的EJB3的小例子,有客户端和服务器端构成。相信非常有参考价值,分享给和我一样当初苦苦寻找的同学。
weblogic 10 ejb3 入门教程 + 调试通过的源代码 通过网上的教程,调试通过了weblogic 下的 ejb 3, 备份专用
图解eclipse+myelcipse开发EJB,weblogic部署
学习EJB的简单例子,有个需要说明的地方:wlfullclient.jar生成方式是,进入weblogic的安装目录例如C:\Oracle\Middleware\wlserver_10.3\server\lib,运行 java -jar wljarbuilder.jar就能生成wlfullclient.jar文件
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...