Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

When all @PreDestroy gets called?

 
Rajesh So
Ranch Hand
Posts: 149
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

May I list down all the cases where @PreDestroy is guaranteed. Would be greatful if you can correct.

  • The Stateful Session Bean's method was called by a client and is complete. The Bean is idle for some time. It gets passivated and times out of passivation. The @PreDestroy is called.
  • The Stateful Session Bean's method is called and is complete. The @Remove method is called by client. The Bean calls Remove and then the @PreDestroy method.
  • The Stateful Session Bean was used by the Client. Suddenly a System Crash happens. Does the server bother to call the @PreDestroy, when the System itself is undergoing crash?


  • Regards,
    Rajesh
     
    Amandeep Singh
    Ranch Hand
    Posts: 850
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    in your 3rd case, it will not bother to call.
     
    Treimin Clark
    Ranch Hand
    Posts: 757
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Rajesh So wrote:
    The Bean is idle for some time. It gets passivated and times out of passivation. The @PreDestroy is called.


    As I know @PreDestroy is not called in this case. It is called, only if the bean is in activated (object) state. If it is in passivated state when timing out, the bean (passivated) will be destroyed without calling @PreDestroy method.
     
    Rajesh So
    Ranch Hand
    Posts: 149
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Do you believe only in case 2 that @PreDestroy is called? Is @Remove, the only route to @PreDestroy?

  • The Stateful Session Bean's method is called and is complete. The @Remove method is called by client. The Bean calls Remove and then the @PreDestroy method.


  • Other than the cases I mentioned, is there any other way to reach @PreDestroy?
     
    Treimin Clark
    Ranch Hand
    Posts: 757
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Rajesh So wrote:
    Other than the cases I mentioned, is there any other way to reach @PreDestroy?


    If the session (bean) is timed-out, while the bean is in active (non-passive) mode.

     
    Rajesh So
    Ranch Hand
    Posts: 149
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    If the session (bean) is timed-out, while the bean is in active (non-passive) mode

    May I know how to simulate this in Glassfish?

    Are all Routes to @PreDestroy are mentioned in this post? Have we left out anything?
     
    • Post Reply
    • Bookmark Topic Watch Topic
    • New Topic