3 Replies Latest reply on Oct 10, 2007 11:19 AM by rajiv konkimalla

    Passivation-can its time of occurance be controlled?(4.2.1.g

    rajiv konkimalla Newbie

      We use a stateful session bean, which opens a socket connection. It is understood that during the passivation this connection needs to be closed, otherwise the connection becomes hung state and becomes useless during the next garbage collection time. So, during activation we are reopening the connection and everything works well.

      I observed that in 4.2.1.ga, passivation happens approximately 6 to 10 mins. I have seen the variation in the time. I thought of removing the passivation, so edited the following file
      ejb3-clustered-sfsbcache-service.xml with to have false. Even after running using "-c all" option, I see passivation is happening; I see logs showing that the state is getting stored in a file.

      1) Is there any way I can stop the passivation?
      2) Is there any way to increase the time of passivation to "x" mins.

      This is becoming a bottleneck to our requirement. Hence, Please give me a solution.

        • 1. Re: Passivation-can its time of occurance be controlled?(4.2
          Carlo de Wolf Master

          Take a look in ejb3-interceptors-aop.xml. In the "Stateful Bean" domain, the cache is configured for clustered and non-clustered beans.
          You can either edit this file or add the annotations to your bean.

          • 2. Re: Passivation-can its time of occurance be controlled?(4.2
            Carlo de Wolf Master

            If you don't want clustering or passivation you can use:

            @Cache(org.jboss.ejb3.cache.NoPassivationCache.class)


            • 3. Re: Passivation-can its time of occurance be controlled?(4.2
              rajiv konkimalla Newbie

              Thanks for the timely response as this was critical. I started with testing by adding the annotation and it works fine. Then, removed the code and edited the xml file and even then it works fine (no passivation). I edited the file both in clustered/nonclustered and passivation is being stopped.
              However, I am not sure the editing of the xml file will cause other problems. Following are the changes I made.

              1) First test: stopping passivation for all beans. Added the following lines to domain = "Stateful Bean".

              '<'annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache)">
              @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class)
              '<'/annotation>



              2) Second test: stopping passivation for a specific bean (only one stateful bean in def package) . Added the following lines to domain = "Stateful Bean".

              '<'annotation expr="!class(@com.aaa.bbb.ccc.def.*)">
              @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class)
              '<'/annotation>



              Can you please confirm the correctness of the changes made to the xml file?