org.objectweb.carol.cmi
Class DistributorSlsbRemote

java.lang.Object
  extended byorg.objectweb.carol.cmi.Distributor
      extended byorg.objectweb.carol.cmi.DistributorSlsbRemote

public abstract class DistributorSlsbRemote
extends Distributor

Specific Distributor class for the Home interface load balancing and fail-over logic - default LB algorithm : -> local pref and round robin - default fail-over algorithm : -> retry on ConnectException or ConnectIOException or NoSuchObjectException

Author:
Benoit Pelletier

Constructor Summary
DistributorSlsbRemote()
           
 
Method Summary
 StubData choose(java.lang.reflect.Method method, java.lang.Object[] parameters)
          choose a stub according to the load balancing algorithm - round robin Note that here the local preference is not implemented because not necessary.
 boolean equivAtBind()
          To be overriden
 boolean equivAtExport()
          To be overriden
 Decision onException(java.lang.reflect.Method method, java.lang.Object[] parameters, StubData sd, java.lang.Exception ex)
          Decision on Exception : - retry on ConnectException or ConnectIOException or NoSuchObjectException The application deployer can override this method to make its own choices.
 Decision onReturn(java.lang.reflect.Method method, java.lang.Object[] parameters, StubData sd, java.lang.Object retVal)
          Decision on return - do nothing The application deployer can override this method to make its own choices.
 
Methods inherited from class org.objectweb.carol.cmi.Distributor
chooseLocalFirst, getCurrentState, getMyServerId, getStubList, preInvoke, read, removeStub, removeStub, toContentsString, toString, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DistributorSlsbRemote

public DistributorSlsbRemote()
Method Detail

equivAtBind

public boolean equivAtBind()
Description copied from class: Distributor
To be overriden

Specified by:
equivAtBind in class Distributor
Returns:
true if the bound object have to be clustered
See Also:
Distributor.equivAtBind()

equivAtExport

public boolean equivAtExport()
Description copied from class: Distributor
To be overriden

Specified by:
equivAtExport in class Distributor
Returns:
true if the export object have to be clustered
See Also:
The single remote stub for the SSB has to be replicated at the export() time

choose

public StubData choose(java.lang.reflect.Method method,
                       java.lang.Object[] parameters)
                throws NoServerException
choose a stub according to the load balancing algorithm - round robin Note that here the local preference is not implemented because not necessary. Indeed, the onReturn() method of the DistributorHome class for a create() returns a single stub (not a CMI stub but a simple RMI stub) when a local one exists. Thus for the SSB remote interface the CMI stub is used and this choose() method is called only if there is not local target. The application can override this method

Overrides:
choose in class Distributor
Parameters:
method - called method
parameters - method's parameters list
Returns:
chose stub
Throws:
NoServerException - if no more stub available

onReturn

public Decision onReturn(java.lang.reflect.Method method,
                         java.lang.Object[] parameters,
                         StubData sd,
                         java.lang.Object retVal)
Decision on return - do nothing The application deployer can override this method to make its own choices.

Overrides:
onReturn in class Distributor
Parameters:
method - calling method
parameters - parameters of the calling method
sd - stub data
retVal - return value
Returns:
decision

onException

public Decision onException(java.lang.reflect.Method method,
                            java.lang.Object[] parameters,
                            StubData sd,
                            java.lang.Exception ex)
Decision on Exception : - retry on ConnectException or ConnectIOException or NoSuchObjectException The application deployer can override this method to make its own choices.

Overrides:
onException in class Distributor
Parameters:
method - calling method
parameters - parameters of the calling method
sd - stub data
ex - exception
Returns:
decision