statusful sessionbean 设置,不出现passivate 的问题,解决心得

遇到问题,多查文档,在不理解的情况下,多测试可选项,最好是讲可选项到厂家提供的文档中搜索相关说明!

问题:
设置了<max-beans-in-cache>,但是passivate总是不出现

解决办法:
跟<cache-type>的设置有关:

cache-type

Range of values:

NRU | LRU

Default value:

NRU

Requirements:


Parent elements:

weblogic-enterprise-bean

     stateful-session-cache

Function

The cache-type element specifies the order in which EJBs are removed from the cache. The values are:

  • Least recently used (LRU)

  • Not recently used (NRU)

    The minimum cache size for NRU is 8. If max-beans-in-cache is less than 3, WebLogic Server uses a value of 8 for cache-type.

也就是说,如果设置或缺省NRU,<max-beans-in-cache>设置为小于3,我设置的是2,在调用是同时创建小于8的实例,我就用的3,是不可能passivate的,因为系统讲<max-beans-in-cache>设置为8
如果用LRU,就不会出现这种情况,只要创建实例大于<max-beans-in-cache>,就会passivate

详细见:http://e-docs.bea.com/wls/docs70/ejb/reference.html#1165192
原文地址:https://www.cnblogs.com/willpower/p/66229.html