Class ActiveElectionManager

java.lang.Object
com.gigaspaces.cluster.activeelection.core.ActiveElectionManager

public class ActiveElectionManager extends Object
ActiveElectionManager based on distributed naming service INamingService and provides a distributed active election algorithm to select only one active service between all candidates.

NOTE: The manage service must provide consistent equals() method implementation or implement ReferentUuid interface. Example:

   
    public class ServiceIDOrderFilter
      implements IActiveElectionDecisionFilter
    {
         ServiceID _srvID;

     public boolean isAcceptable(ActiveElectionState.State advanceState, List
 candidateSrv )
     {
       for( ServiceItem srvItem : candidateSrv )
       {
        // return true if _srvID is the greater from all candidateSrv.serviceID;
       }
     }
    }

    public class ElectionListener
                implements IActiveElectionListener
    {
      ActiveElectionManager _electManager;

      public void onActive( ActiveElectionEvent event )
      {
        System.out.println("OnActive -> Elected Active: " + event.getActiveServiceItem() );

        if ( _electManager.getState() == ActiveElectionState.State.ACTIVE )
          System.out.println("The manage service is an ACTIVE");
        else
          System.out.println("The manage service is an NOT an ACTIVE");

       }

       public void onSplitBrain( ActiveElectionEvent event )
       {
         System.out.println("OnSplit -> Elected Active: " + event.getActiveServiceItem() ); *
       }
     }

    public static void main( String[] args )
    {
     IJSpace space;
     ServiceTemplate srvTemplate;
     INamingService lookupSrv    = new LookupNamingService();
     ElectionListener listener   = new ElectionListener();
     ServiceIDOrderFilter filter = new ServiceIDOrderFilter();

     ActiveElectionManager electManager = new ActiveElectionManager( space, srvTemplate,
 lookupSrv, listener, filter );
     electManager.elect();
    }
   
 
Since:
6.0
Version:
1.0
Author:
Igor Goldenberg
See Also: