[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-3172) Shutting down cluster node gracefully, causes NoSuchEJBException on next request

Dan Allen (JIRA) jira-events at lists.jboss.org
Thu Dec 4 02:11:36 EST 2008


    [ https://jira.jboss.org/jira/browse/JBSEAM-3172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12441051#action_12441051 ] 

Dan Allen commented on JBSEAM-3172:
-----------------------------------

Ah, this is a tricky one. It's one of those nice gaps in the Java EE spec. When a session is destroyed, it might just be that the node in the cluster is shutting down and that the session has already failed over to another node. The listener can't tell us that, so we have to go to JMX. I took your idea and ran with it and now detect when the node is shutting down and if we are the last node.

Important point: You must invoke the shutdown() method on jboss.system:type=Server to take down the node. If you terminate the node with a process signal, there is no way to detect it in JMX (that I can find).

Btw, according to my tests, you don't need to prevent the application context from being destroyed, just the session context.

> Shutting down cluster node gracefully, causes NoSuchEJBException on next request
> --------------------------------------------------------------------------------
>
>                 Key: JBSEAM-3172
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-3172
>             Project: Seam
>          Issue Type: Bug
>          Components: Performance and Scalability
>    Affects Versions: 2.0.3.CR1
>         Environment: OS: Linux (RHEL 5), JBoss 4.2.2, Seam 2.0.3-SNAPSHOT (same for 2.0.2.SP1, 2.0.3.CR1)
>            Reporter: Nikolay Elenkov
>            Assignee: Dan Allen
>             Fix For: 2.1.1.CR2
>
>
> Application (ear) is  deployed to a two node JBoss cluster.
> Setup:
> 1. two nodes (node1, node2)
> 2. load balancing/failover by Apache with mod_jk
> 3. sticky sessions
> 4. session replication confirmed to work for http session and SFSB (by JBoss trace log)
> 5. shared database
> Steps to reproduce:
> 1. login to app, go to same page backed by a SFSB, start new conversation
> 2. enter some data (saved in SFSB fields)
> 3. stop JBoss on node1 gracefully (shutdown.sh)
> 4. click submit
> 5. NoSuchEJBException: "Could not find stateful bean: 4sv1g5o-jqzric-fhyhsk09-1-fhyhunhd-9"
> The next request, creates a new SFSB/conversation and it works as expected from there.
> Note that if I kill -s 9 JBoss, SFSB's are not removed and failover works as expected. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list