Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-5778

Improve HttpSessionListener handling in clustered environment

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: JBossAS-4.2.0.GA, JBossAS-4.2.1.GA, JBossAS-4.2.2.GA, JBossAS-4.2.3.GA
    • Fix Version/s: JBossAS-5.0.0.GA
    • Component/s: Clustering
    • Labels:
      None

      Description

      Suppose we have a web application which uses stateful session beans, and we have a HttpSessionListener like this:

      public void sessionDestroyed(HttpSessionEvent event) {
      event.getSession().getAttribute("sfsb").remove(); // Make sure to call SFSB's @Remove method
      }

      This behavior is what Seam does.

      The HttpSessionListener.sessionDestroyed() would be called in session invalidation, session timeout and during undeploy/shutdown for cleaning up local resources. This happens in both cases, clustered and non-clustered .

      However, in clustered environment, the sfsb.remove() method call in HttpSessionListener becomes a cluster-wide operation. So when we shutdown one node, HttpSession is still available on the other node for fail over but SFSB is missing. As a result we will get javax.ejb.NoSuchEJBException: Could not find stateful bean.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  brian.stansberry Brian Stansberry
                  Reporter:
                  tkimura Takayoshi Kimura
                • Votes:
                  2 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: