Stateful Session Bean 在JBoss 6 下临时文件

来源:互联网 发布:react native vue.js 编辑:程序博客网 时间:2024/05/16 10:04

最近项目组的同事,在开发项目优化的时候,使用了SFSB,以至于在JBoss 的tmp文件下Session文件里面出现了恐怖的以 .ser临时文件。

什么是.ser 文件。

它是在SFSB被钝化以后,形成的一个文件,以便提供重新唤起的可能。

经过查找,我们发现,在jboss 的deploy文件夹下面,有一个叫ejb-interceptors-aop.xml的文件,这个文件中定义了各种不同形式的bean的Cache配置。

其中一条关于stateful Bean的

</pre><pre name="code" class="html"><domain name="Stateful Bean"extends="Base Stateful Bean" inheritBindings="true">      <!--NON Clustered cache configuration -->     <annotation expr="class(*) AND!class(@org.jboss.ejb3.annotation.Cache) AND!class(@org.jboss.ejb3.annotation.Clustered)">        @org.jboss.ejb3.annotation.Cache ("SimpleStatefulCache")     </annotation>     <annotation expr="class(*) AND !class(@org.jboss.ejb3.annotation.PersistenceManager)AND !class(@org.jboss.ejb3.annotation.Clustered)">        @org.jboss.ejb3.annotation.PersistenceManager("StatefulSessionFilePersistenceManager")     </annotation>     <annotation expr="class(*) AND !class(@org.jboss.ejb3.annotation.CacheConfig)AND !class(@org.jboss.ejb3.annotation.Clustered)">        @org.jboss.ejb3.annotation.CacheConfig (maxSize=100000,idleTimeoutSeconds=300, removalTimeoutSeconds=0)     </annotation>       <!--Clustered cache configuration -->     <annotation expr="class(*) AND!class(@org.jboss.ejb3.annotation.Cache) ANDclass(@org.jboss.ejb3.annotation.Clustered)">        @org.jboss.ejb3.annotation.Cache ("StatefulTreeCache")     </annotation>     <annotation expr="class(*) AND!class(@org.jboss.ejb3.annotation.CacheConfig) ANDclass(@org.jboss.ejb3.annotation.Clustered)">        @org.jboss.ejb3.annotation.CacheConfig (name="sfsb-cache",maxSize=100000, idleTimeoutSeconds=300, removalTimeoutSeconds=0)      </annotation>  </domain>


通过比较,发现 removalTimeoutSeconds=0是决定性的因素,0的意思是绝不删除。

修改以后我们将 removalTimeoutSeconds=10000,也就是在SFSB钝化后的2.5个小时再将此文件删除。

通过测试,达到了我们的预期。

原创粉丝点击