Examples of GroupManagementAgent


Examples of org.apache.axis2.clustering.management.GroupManagementAgent

    public Member getNextApplicationMember(String host) {
        DomainAlgorithmContext domainAlgorithmContext = getDomainAlgorithmContext(host);
        String lbDomain = domainAlgorithmContext.getDomain();
        LoadbalanceAlgorithm algorithm = domainAlgorithmContext.getAlgorithm();
        GroupManagementAgent groupMgtAgent = clusteringAgent.getGroupManagementAgent(lbDomain);
        if(groupMgtAgent == null){
            String msg =
                    "A LoadBalanceEventHandler has not been specified in the axis2.xml " +
                    "file for the domain " + lbDomain + " for host " + host;
            log.error(msg);
            throw new SynapseException(msg);
        }
        algorithm.setApplicationMembers(groupMgtAgent.getMembers());
        AlgorithmContext context = domainAlgorithmContext.getAlgorithmContext();
        return algorithm.getNextApplicationMember(context);
    }
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

   
    @Override
    public Integer call() throws Exception {
        int runningInstances;
        // for each sub domain, get the clustering group management agent
        GroupManagementAgent agent =
            AutoscalerTaskDSHolder.getInstance().getAgent()
                .getGroupManagementAgent(this.domain,
                    this.subDomain);

        // if it isn't null
        if (agent != null) {
            // we calculate running instance count for this service domain
            runningInstances = agent.getMembers().size();
        } else {
            // if agent is null, we assume no service instances are running
            runningInstances = 0;
        }
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

        // here we have to pass tenant id to get domain from hostContext
        String domain = hostContext.getDomainFromTenantId(tenantId);
        String subDomain = hostContext.getSubDomainFromTenantId(tenantId);

        LoadbalanceAlgorithm algorithm = hostContext.getAlgorithm();
        GroupManagementAgent groupMgtAgent = clusteringAgent.getGroupManagementAgent(domain, subDomain);
       
        if (groupMgtAgent == null) {
          String tenantDomain;
            try {
              tenantDomain = ConfigHolder.getInstance().getRealmService().getTenantManager().getDomain(tenantId);
            } catch (UserStoreException ignore) {
              tenantDomain = ""+tenantId;
            }
         
            String msg =
                    "No Group Management Agent found for the domain: " + domain + ", subDomain: "
                        + subDomain + ", host: " + host+ " and for tenant: "
                        +  tenantDomain;
            log.error(msg);
            throw new SynapseException(msg);
        }
        algorithm.setApplicationMembers(groupMgtAgent.getMembers());
        AlgorithmContext context = hostContext.getAlgorithmContext();
        return algorithm.getNextApplicationMember(context);
    }
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

            log.debug("Pending Instances State Checker has started for: " +
                AutoscaleUtil.domainSubDomainString(domain, subDomain) + ". Check expiry time : " + serverStartupDelay);

            // for each sub domain, get the clustering group management agent
            GroupManagementAgent agent =
                AutoscalerTaskDSHolder.getInstance().getAgent()
                    .getGroupManagementAgent(domain,
                        subDomain);
            int startingRunningInstanceCount = agent.getMembers().size();

            // we give some time for the server to get joined, we'll check time to time
            // whether the instance has actually joined the ELB.
            while ((agent.getMembers().size() < (originalRunningInstanceCount + expectedIncrementOfinstanceCount)) &&
                totalWaitedTime < serverStartupDelay) {
                int upToDateRunningInstanceCount = agent.getMembers().size();

                log.debug(AutoscaleUtil.domainSubDomainString(domain, subDomain) +
                    " - Number of current running instances " +
                        upToDateRunningInstanceCount);

                if (upToDateRunningInstanceCount > startingRunningInstanceCount) {
                    int newlyJoinedInstanceCount = upToDateRunningInstanceCount - startingRunningInstanceCount;
                    // set new running instance count
                    groupCtxt.setRunningInstanceCount(upToDateRunningInstanceCount);
                    // decrement the pending instance count
                    groupCtxt.decrementPendingInstancesIfNotZero(newlyJoinedInstanceCount);
                    // update the starting running instance count
                    startingRunningInstanceCount = upToDateRunningInstanceCount;

                    log.debug(AutoscaleUtil.domainSubDomainString(domain, subDomain) +
                        " - Instances newly joined: " +
                            newlyJoinedInstanceCount);
                }

                try {
                    Thread.sleep(AutoscaleConstants.INSTANCE_REMOVAL_CHECK_TIME);
                } catch (InterruptedException ignore) {
                }

                totalWaitedTime += AutoscaleConstants.INSTANCE_REMOVAL_CHECK_TIME;
            }

            log.debug(AutoscaleUtil.domainSubDomainString(domain, subDomain) + "- Waited for : " +
                totalWaitedTime +
                " (milliseconds) till pending members get joined.");

            if (agent.getMembers().size() < (originalRunningInstanceCount + expectedIncrementOfinstanceCount)) {

                int instanceCountFailedToJoin =
                    originalRunningInstanceCount + expectedIncrementOfinstanceCount - agent.getMembers().size();
                log.debug(AutoscaleUtil.domainSubDomainString(domain, subDomain) +
                    "Instances that are failed to join: " +
                        instanceCountFailedToJoin);

                // to avoid an infinite loop
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

                .getServerStartupDelay();
            log.info("Terminating Instances State Checker has started for: " +
                AutoscaleUtil.domainSubDomainString(domain, subDomain) + ". Check expiry time : " + serverStartupDelay);

            // for each sub domain, get the clustering group management agent
            GroupManagementAgent agent =
                AutoscalerTaskDSHolder.getInstance().getAgent()
                    .getGroupManagementAgent(domain,
                        subDomain);

            int startingRunningInstanceCount = agent.getMembers().size();

            // we give some time for the server to be terminated, we'll check time to time
            // whether the instance has actually left the cluster.
            while (agent.getMembers().size() == startingRunningInstanceCount &&
                totalWaitedTime < serverStartupDelay) {

                try {
                    Thread.sleep(AutoscaleConstants.INSTANCE_REMOVAL_CHECK_TIME);
                } catch (InterruptedException ignore) {
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

                        String domain = tenantCtxt.getDomain();
                        String subDomain = tenantCtxt.getSubDomain();

                        if (clusteringAgent.getGroupManagementAgent(domain, subDomain) == null) {
                            String gmAgentClass = lbConfig.getLoadBalancerConfig().getGroupManagementAgentClass();
                            GroupManagementAgent groupManagementAgent;
                            if (gmAgentClass != null) {
                                try {
                                    groupManagementAgent = (GroupManagementAgent) Class.forName(gmAgentClass).newInstance();
                                } catch (Exception e) {
                                    String msg = "Cannot instantiate GroupManagementAgent. Class: " + gmAgentClass;
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

                                                                                  uuid);

    ClusteringAgent clusteringAgent =
                                      DataHolder.getServerConfigContext()
                                                .getAxisConfiguration().getClusteringAgent();
    GroupManagementAgent groupMgtAgent =
                                         clusteringAgent.getGroupManagementAgent(clusterDomain,
                                                                                 clusterSubdomain);

    try {
      log.info("Sending Request to.. " + clusterDomain + " : " + clusterSubdomain);
      groupMgtAgent.send(request);
     
    } catch (ClusteringFault e) {
      e.printStackTrace();
    }
    
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

    private static List<Member> getMemberInstances(String domain, String subDomain) {

        ClusteringAgent clusteringAgent = DataHolder.getServerConfigContext()
                .getAxisConfiguration().getClusteringAgent();
        GroupManagementAgent groupMgtAgent = clusteringAgent.getGroupManagementAgent(domain, subDomain);

        if (groupMgtAgent == null) {
            log.warn("Group Management Agent not found for domain : " + domain +
                    ", sub domain : " + subDomain);
            return null;
        }

        List<Member> members = groupMgtAgent.getMembers();
        if (members == null || members.isEmpty()) {
            return null;
        }

        return members;
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

    private static final Log log = LogFactory.getLog(ClusterAdmin.class);

    public GroupMember[] getMembers(String groupName) throws Exception {
        ClusteringAgent clusteringAgent = getClusteringAgent();
        GroupManagementAgent groupManagementAgent =
                clusteringAgent.getGroupManagementAgent(groupName);
        if (groupManagementAgent == null) {
            handleException("No GroupManagementAgent defined for domain " + groupName);
            return null;
        }
        List<Member> members = groupManagementAgent.getMembers();
        GroupMember[] groupMembers = new GroupMember[members.size()];
        int i = 0;
        for (Member member : members) {
            GroupMember groupMember = new GroupMember();
            groupMember.setHostName(member.getHostName());
View Full Code Here

Examples of org.apache.axis2.clustering.management.GroupManagementAgent

        List<Group> groups = new ArrayList<Group>();
        Set<String> groupNames = clusteringAgent.getDomains();
        for (String groupName : groupNames) {
            Group group = new Group();
            group.setName(groupName);
            GroupManagementAgent gmAgent = clusteringAgent.getGroupManagementAgent(groupName);
            List<Member> memberList = gmAgent.getMembers();
            group.setDescription(gmAgent.getDescription());
            group.setNumberOfMembers(memberList.size());
            groups.add(group);
        }
        return groups.toArray(new Group[groups.size()]);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.