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;
}