1 Reply Latest reply on Feb 4, 2008 8:28 PM by Jeff Storey

    EJB Passivation Time

    Jeff Storey Newbie

      Hi, I've deployed an EJB (in a .ear file using EJB3 annotations) to my JBoss server, and for some reason, they always take 10 minutes of inactivity to passivate (and then I let the server run for another 12 hours and the bean was still not removed from the container completely).

      I'm running the default configuration and I've modified the JBoss standardjboss.xml file (in server\default\conf) that relates to the container configuration to look as follows:

      <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>50</min-capacity>
       <max-capacity>1000000</max-capacity>
       <remover-period>30</remover-period>
       <max-bean-life>30</max-bean-life>
       <overager-period>30</overager-period>
       <max-bean-age>30</max-bean-age>
       <resizer-period>5</resizer-period>
       <max-cache-miss-period>5</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 would think the beans should now passivate within 30 seconds of inactivity.

      Can anyone explain why passivation still takes 10 minutes or why the beans are never removed from the container? Thanks.

      Also, I am using the default jboss configuration and just starting it with bin/run.bat script.

      Jeff