1 Reply Latest reply on Jun 13, 2008 8:55 AM by artd

    EJB3 - Stale bean removal problem

      I've noticed some near OOM issues on our production server that started the investigation.

      I noticed that the SFSB's were being passivated accordingly, however, the stale/old beans were never removed from passivation.

      Our production is using 4.2.1, and I've also verified on 4.2.2, although 4.2.2 seems to properly remove the SLSB's (or at least instruments them properly).

      As with many others, we found the MaxSize in the ejb3-aop-interceptors.xml , which we reduced to 100, as well as configured the domain as such:

      <container-configuration>
       <container-name>Standard Stateful SessionBean</container-name>
       <call-logging>false</call-logging>
       <invoker-proxy-binding-name>stateful-unified-invoker</invoker-proxy-binding-name>
       <container-interceptors>
       <interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</interceptor>
       <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
       <!-- CMT -->
       <interceptor transaction="Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
       <interceptor transaction="Container">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor>
       <interceptor transaction="Container">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
       <!-- BMT -->
       <interceptor transaction="Bean">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
       <interceptor transaction="Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
       <interceptor transaction="Bean">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor>
       <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
       <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
       </container-interceptors>
       <instance-cache>org.jboss.ejb.plugins.StatefulSessionInstanceCache</instance-cache>
       <persistence-manager>org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager</persistence-manager>
       <container-cache-conf>
       <cache-policy>org.jboss.ejb.plugins.LRUStatefulContextCachePolicy</cache-policy>
       <cache-policy-conf>
       <min-capacity>5</min-capacity>
       <max-capacity>10</max-capacity>
       <remover-period>62</remover-period>
       <max-bean-life>61</max-bean-life>
       <overager-period>30</overager-period>
       <max-bean-age>60</max-bean-age>
       <resizer-period>40</resizer-period>
       <max-cache-miss-period>20</max-cache-miss-period>
       <min-cache-miss-period>1</min-cache-miss-period>
       <cache-load-factor>0.75</cache-load-factor>
       </cache-policy-conf>
       </container-cache-conf>
       <container-pool-conf>
       <MaximumSize>100</MaximumSize>
       </container-pool-conf>
       </container-configuration>
      


      I've been running for over 2 hours now, and the SFSB CreateCount contionues to rise, as well as the passoviate count, however, the Remove count is never incremented (unless I explicitily call an @Remove annotated method).

      Does anyone have any idea what is happening here?

      The above configuration is only for testing, and doesn't reflect what we're looking for in a productin environment, I'm just not sure why the SFSB's are never removed from the passivated file store.