[jboss-jira] [JBoss JIRA] (AS7-3492) Failover of clustered bean invocations might not happen if the client itself is a server instance and the client server had a local deployment handling the invocation

jaikiran pai (JIRA) jira-events at lists.jboss.org
Tue May 8 03:34:22 EDT 2012


    [ https://issues.jboss.org/browse/AS7-3492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12690970#comment-12690970 ] 

jaikiran pai commented on AS7-3492:
-----------------------------------

This is now fixed in upstream.

Here's how we deal with this:

1) A LocalEJBReceiverPreferringDeploymentNodeSelector https://github.com/jbossas/jboss-as/blob/master/ejb3/src/main/java/org/jboss/as/ejb3/remote/LocalEJBReceiverPreferringDeploymentNodeSelector.java is in place on server side which selects a local receiver if there are multiple receivers (including remote ones) which can handle an invocation on a bean in a deployment. 
2) Once the cluster topology is returned to the local receiver, by the remote server instances, the local receiver sets up necessary connection configuration within the EJB client context so that it can be used for connection creation to remote nodes whenever necessary.
3) As long as the local node has the target application deployed, the calls will be routed to the local receiver.
4) Once the target application on the local node gets undeployed, any subsequent invocations for that bean will be routed (i.e. failover) to the remote nodes to which connection will be established using the information available from step#2.

All this is tested in https://github.com/jbossas/jboss-as/blob/master/testsuite/integration/clust/src/test/java/org/jboss/as/test/clustering/cluster/ejb3/stateful/remote/failover/LocalEJBClientFailoverTestCase.java


                
> Failover of clustered bean invocations might not happen if the client itself is a server instance and the client server had a local deployment handling the invocation
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AS7-3492
>                 URL: https://issues.jboss.org/browse/AS7-3492
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: Clustering, EJB
>    Affects Versions: 7.1.0.CR1b
>            Reporter: jaikiran pai
>            Assignee: jaikiran pai
>             Fix For: 7.1.2.Final (EAP)
>
>
> Currently, if a stateful bean is @Cluster(ed) and an invocation on it is done from within the same server, invocations on that bean are always handled by the LocalEJBReceiver even if the cluster has multiple others nodes hosting that stateful bean.
> The LocalEjbReceiver currently receives the cluster topology but doesn't create (remote) EJB receviers out of it for the client context. The missing piece is configurations that need to be passed for creating the remote EJB receivers.  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list