Java源码示例:org.apache.axis2.clustering.state.Replicator

示例1
public String greet(String name) {
    ServiceContext serviceContext =
            MessageContext.getCurrentMessageContext().getServiceContext();
    serviceContext.setProperty(HELLO_SERVICE_NAME, name);
    try {
        Replicator.replicate(serviceContext, new String[]{HELLO_SERVICE_NAME});
    } catch (ClusteringFault clusteringFault) {
        clusteringFault.printStackTrace();
    }

    if (name != null) {
        return "Hello World, " + name + " !!!";
    } else {
        return "Hello World !!!";
    }
}
 
示例2
public String greet(String name) {
    ServiceContext serviceContext =
            MessageContext.getCurrentMessageContext().getServiceContext();
    serviceContext.setProperty(HELLO_SERVICE_NAME, name);
    try {
        Replicator.replicate(serviceContext, new String[]{HELLO_SERVICE_NAME});
    } catch (ClusteringFault clusteringFault) {
        clusteringFault.printStackTrace();
    }

    if (name != null) {
        return "Hello World, " + name + " !!!";
    } else {
        return "Hello World !!!";
    }
}
 
示例3
public String greet(String name) {
    ServiceContext serviceContext =
            MessageContext.getCurrentMessageContext().getServiceContext();
    serviceContext.setProperty(HELLO_SERVICE_NAME, name);
    try {
        Replicator.replicate(serviceContext, new String[]{HELLO_SERVICE_NAME});
    } catch (ClusteringFault clusteringFault) {
        clusteringFault.printStackTrace();
    }

    if (name != null) {
        return "Hello World, " + name + " !!!";
    } else {
        return "Hello World !!!";
    }
}
 
示例4
public String greet(String name) {
    ServiceContext serviceContext = MessageContext.getCurrentMessageContext().getServiceContext();
    serviceContext.setProperty(HELLO_SERVICE_NAME, name);
    try {
        Replicator.replicate(serviceContext, new String[] { HELLO_SERVICE_NAME });
    } catch (ClusteringFault clusteringFault) {
        clusteringFault.printStackTrace();
    }

    if (name != null) {
        return "Hello World, " + name + " !!!";
    } else {
        return "Hello World !!!";
    }
}
 
示例5
private boolean doThrottle(MessageContext messageContext) {
    boolean isResponse = messageContext.isResponse();
    org.apache.axis2.context.MessageContext axis2MC = ((Axis2MessageContext) messageContext).
            getAxis2MessageContext();
    ConfigurationContext cc = axis2MC.getConfigurationContext();

    ThrottleDataHolder dataHolder = null;
    if (cc == null) {
        handleException("Error while retrieving ConfigurationContext from messageContext");
    }

    synchronized (cc) {
        dataHolder = (ThrottleDataHolder) cc.getProperty(ThrottleConstants.THROTTLE_INFO_KEY);
        if (dataHolder == null) {
            dataHolder = new ThrottleDataHolder();
            cc.setNonReplicableProperty(ThrottleConstants.THROTTLE_INFO_KEY, dataHolder);
        }
    }

    if ((throttle == null && !isResponse) || (isResponse && concurrentAccessController == null)) {
        isClusteringEnable = isClusteringEnabled();
    }

    if (!isResponse) {
        //check the availability of the ConcurrentAccessController
        //if this is a clustered environment
        if (isClusteringEnable) {
            concurrentAccessController = (ConcurrentAccessController) cc.getProperty(key);
        }
        initThrottle(messageContext, cc);
    } else {
        // if the message flow path is OUT , then must lookup from ConfigurationContext -
        // never create ,just get the existing one
        concurrentAccessController = (ConcurrentAccessController) cc.getProperty(key);
    }


    // perform concurrency throttling
    boolean canAccess = doThrottleByConcurrency(isResponse);
    // if the access is success through concurrency throttle and if this is a request message
    // then do access rate based throttling
    if (canAccess && !isResponse && throttle != null) {
        canAccess = throttleByAccessRate(axis2MC, cc) &&
                doRoleBasedAccessThrottling(messageContext, cc);
    }

    // All the replication functionality of the access rate based throttling handled by itself
    // Just replicate the current state of ConcurrentAccessController
    if (isClusteringEnable && concurrentAccessController != null) {

        try {
            Replicator.replicate(cc);
        } catch (ClusteringFault clusteringFault) {
            handleException("Error during the replicating  states ", clusteringFault);
        }

    }

    if (!canAccess) {
        handleThrottleOut(messageContext);
        return false;
    }
    return true;
}