public interface StateManager extends ParameterInclude
This interface is responsible for handling context replication. The property changes in the Axis2 context hierarchy in this node, are propagated to all other nodes in the cluster.
It is not mandatory to have a StateManager in a node. If we are not interested in High Availability, we may disable context replication by commenting out the "contextManager" section in the axis2.xml cluster configuration section. In such a scenatio, the cluster will be used only for the purpose of Scalability
The implementation of this interface is set by the
ClusterBuilder
, by
reading the "contextManager" element in the axis2.xml
Modifier and Type | Method and Description |
---|---|
Map |
getReplicationExcludePatterns()
Get all the excluded context property name patterns
|
boolean |
isContextClusterable(AbstractContext context)
This is a check to see whether the properties in an instance of
AbstractContext
should be replicated. |
void |
removeContext(AbstractContext context)
This method is called when
AbstractContext is removed from the system |
void |
setConfigurationContext(ConfigurationContext configurationContext)
Set the system's configuration context.
|
void |
setReplicationExcludePatterns(String contextType,
List patterns)
All properties in the context with type
contextType which have
names that match the specified pattern will be excluded from replication. |
void |
updateContext(AbstractContext context)
This method is called when properties in an
AbstractContext are updated. |
void |
updateContext(AbstractContext context,
String[] propertyNames)
This method is called when one need to update/replicate only certains properties in the
specified
context |
void |
updateContexts(AbstractContext[] contexts)
This method is called when properties in a collection of
AbstractContext s are updated. |
addParameter, deserializeParameters, getParameter, getParameters, isParameterLocked, removeParameter
void updateContext(AbstractContext context) throws ClusteringFault
AbstractContext
are updated.
This could be addition of new properties, modifications of existing properties or
removal of properties.context
- The context to be replicatedClusteringFault
- If replication failsvoid updateContext(AbstractContext context, String[] propertyNames) throws ClusteringFault
context
context
- The AbstractContext containing the properties to be replicatedpropertyNames
- The names of the specific properties that should be replicatedClusteringFault
- If replication failsvoid updateContexts(AbstractContext[] contexts) throws ClusteringFault
AbstractContext
s are updated.
This could be addition of new properties, modifications of existing properties or
removal of properties.contexts
- The AbstractContexts containing the properties to be replicatedClusteringFault
- If replication failsvoid removeContext(AbstractContext context) throws ClusteringFault
AbstractContext
is removed from the systemcontext
- The AbstractContext to be removedClusteringFault
- If context removal failsboolean isContextClusterable(AbstractContext context)
AbstractContext
should be replicated. This allows an implementer to dissallow the replication of properties
stored in a certain type of contextcontext
- The instance of AbstractContext under considerationAbstractContext
is clusterablevoid setConfigurationContext(ConfigurationContext configurationContext)
configurationContext
- The configuration contextvoid setReplicationExcludePatterns(String contextType, List patterns)
All properties in the context with type contextType
which have
names that match the specified pattern will be excluded from replication.
Only prefixes and suffixes are allowed. e.g. the local_* pattern indicates that all property names starting with local_ should be omitted from replication. *_local pattern indicated that all property names ending with _local should be omitted from replication. * pattern indicates that all properties should be excluded.
Generally, we can use the context class name as the context type.
contextType
- The type of the context such as
org.apache.axis2.context.ConfigurationContext,
org.apache.axis2.context.ServiceGroupContext &
org.apache.axis2.context.ServiceContext.
Also "defaults" is a special type, which will apply to all contextspatterns
- The patternsMap getReplicationExcludePatterns()
contextType
. See setReplicationExcludePatterns(String,List)
.
The values are of type List
of String
Objects,
which are a collection of patterns to be excluded.setReplicationExcludePatterns(String, java.util.List)
Copyright © 2004-2012 Apache Software Foundation. All Rights Reserved.