[jboss-jira] [JBoss JIRA] Commented: (JBAS-4455) LoadBalancePolicy that tries to pin all requests associated with a tx to one server

Galder Zamarreno (JIRA) jira-events at lists.jboss.org
Tue Dec 11 14:00:51 EST 2007


    [ http://jira.jboss.com/jira/browse/JBAS-4455?page=comments#action_12391615 ] 
            
Galder Zamarreno commented on JBAS-4455:
----------------------------------------

Todo 1 was tested last week and works as expected with 
ha pooled invoker because it uses the ha JRMP proxy which
delegates to the pooled invoker proxy. No changes needed 
there, so won't be adding changes for this.

Still todo:

4.- port this feature to 4.2.x.

5.- create subtasks for documentation for 4.2.x and trunk

> LoadBalancePolicy that tries to pin all requests associated with a tx to one server
> -----------------------------------------------------------------------------------
>
>                 Key: JBAS-4455
>                 URL: http://jira.jboss.com/jira/browse/JBAS-4455
>             Project: JBoss Application Server
>          Issue Type: Feature Request
>      Security Level: Public(Everyone can see) 
>          Components: Clustering
>            Reporter: Brian Stansberry
>         Assigned To: Galder Zamarreno
>            Priority: Minor
>             Fix For:  JBossAS-5.0.0.Beta3
>
>
> The HA proxies don't allow failover once a tx has reached a server.  This can lead to this kind of situation:
> EJB A deployed on nodes 1 and 2.
> EJB B deployed on nodes 1 and 2.
> 1) Start tx, invoke on A.1.
> 2) Lookup B.
> 3) Invoke on B. LB policy picks B.2
> 4) Node 2 is dead for some reason so call fails.
> 5) Can't fail over because tx context won't allow a failover after a call has reached a server.
> But, B.1 is fine and is running on the only node the tx has invoked on. :(
> Approach to improving this.  This is based on JRMPInovkerProxyHA methods, but the idea is generic:
> In invocationHasReachedAServer, instead of storing null as the value, you store the target (key is the tx).
> In invoke, if there's a tx, you add that target (if there is one) to the invocation as transient metadata 
> The LB policy gets passed the invocation as an arg when it chooses a target (this is already in the API)
> LB policy checks for the metadata. If there, and that target is in its target list, return that target

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

        



More information about the jboss-jira mailing list