Interface LimiterMBean
-
- All Known Subinterfaces:
AbsoluteStatLimiterMBean
,QueueSaturationLimiterMBean
,RateLimiterMBean
,RelativeStatLimiterMBean
,StatLimiterMBean
public interface LimiterMBean
Defines the base JMX interface for controlling a single limiter.
When a node is configured to use the pool clustering mode, operations in this interface that include an argument to specify an array of node IDs can only be used to manage state on the node the management client directs the method call at, as determined by
RhinoHousekeepingMBean.getNodeID()
. Including the node ID of any other node in the array argument will result in anInvalidArgumentException
being thrown. To manage state for another node in pool mode, a client must connect directly with that node.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description String[]
getChildLimiters()
Get the names of all limiters for which this limiter is their parent.TabularData
getConfigSummary()
Get the default and per node configuration values stored for this limiter.String[]
getConnectedEndPoints()
Get the IDs of the limiter endpoints connected to this limiter.TabularData
getInfoSummary(int[] nodeIDs)
Get a summary of the configuration of this limiter on the specified nodes (as derived from default and per node settings).String
getName()
Get the name of this limiter.String
getParent()
Get the name of the parent of this limiter (or null if no parent is set).String
getType()
Get the type of this limiter.boolean
isBypassedDefault()
Get the default "bypassed" property for this limiter (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()).boolean[]
isBypassedForNode(int[] nodeIDs)
Get the per-node "bypassed" property for this limiter on the specified nodes (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()).void
setBypassedDefault(boolean bypassed)
Set the default "bypassed" property for this limiter (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()).void
setBypassedForNode(boolean[] bypassed, int[] nodeIDs)
Set the per-node "bypassed" property for this limiter on the specified nodes (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()).void
setBypassedForNode(Boolean[] bypassed, int[] nodeIDs)
Set the per-node "bypassed" property for this limiter on the specified nodes (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()).void
setParent(String parentName)
Set the specified limiter as the parent of this limiter.void
useDefaultConfig(int[] nodeIDs)
Removes any node specific configuration settings for the limiter on the given node(s), causing the nodes to use the cluster wide settings.
-
-
-
Method Detail
-
isBypassedDefault
boolean isBypassedDefault() throws ConfigurationException
Get the default "bypassed" property for this limiter (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()). This value will be used when no per-node setting exists for a given node.
- Throws:
ConfigurationException
-
isBypassedForNode
boolean[] isBypassedForNode(int[] nodeIDs) throws NullPointerException, ConfigurationException, InvalidArgumentException
Get the per-node "bypassed" property for this limiter on the specified nodes (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()).
-
setBypassedDefault
void setBypassedDefault(boolean bypassed) throws ConfigurationException
Set the default "bypassed" property for this limiter (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()). This value will be used when no per-node setting exists for a given node.
- Throws:
ConfigurationException
-
setBypassedForNode
void setBypassedForNode(boolean[] bypassed, int[] nodeIDs) throws NullPointerException, ConfigurationException, InvalidArgumentException
Set the per-node "bypassed" property for this limiter on the specified nodes (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()).
-
setBypassedForNode
void setBypassedForNode(Boolean[] bypassed, int[] nodeIDs) throws NullPointerException, ConfigurationException, InvalidArgumentException
Set the per-node "bypassed" property for this limiter on the specified nodes (if bypassed is true this limiter will delegate all decisions to its parent or if the is no parent will allow all useUnit/s()).
This method is identical to
setBypassedForNode(boolean[], int[])
but it allows a previously set per-node value to be deleted by specifying a null value for that node in the input array.- Throws:
NullPointerException
ConfigurationException
InvalidArgumentException
- Since:
- Rhino 2.7.0
-
getConfigSummary
TabularData getConfigSummary() throws ConfigurationException
Get the default and per node configuration values stored for this limiter.
- Throws:
ConfigurationException
-
getConnectedEndPoints
String[] getConnectedEndPoints() throws ConfigurationException
Get the IDs of the limiter endpoints connected to this limiter. Limiter endpoints in the default namespace are presented simply by their ID. Limiter endpoints in user-defined namespaces are presented in the format
"[<namespace>]/<ID>"
.- Throws:
ConfigurationException
-
getChildLimiters
String[] getChildLimiters() throws ConfigurationException
Get the names of all limiters for which this limiter is their parent.
- Throws:
ConfigurationException
-
getInfoSummary
TabularData getInfoSummary(int[] nodeIDs) throws ConfigurationException, InvalidArgumentException
Get a summary of the configuration of this limiter on the specified nodes (as derived from default and per node settings).
-
useDefaultConfig
void useDefaultConfig(int[] nodeIDs) throws ConfigurationException, InvalidArgumentException
Removes any node specific configuration settings for the limiter on the given node(s), causing the nodes to use the cluster wide settings.
-
getName
String getName() throws ConfigurationException
Get the name of this limiter.
- Throws:
ConfigurationException
-
getType
String getType() throws ConfigurationException
Get the type of this limiter. "RATE" indicates a rate limiter, while "QUEUE_SATURATION" indicates a queue saturation limiter.
- Throws:
ConfigurationException
-
getParent
String getParent() throws ConfigurationException
Get the name of the parent of this limiter (or null if no parent is set).
- Throws:
ConfigurationException
-
setParent
void setParent(String parentName) throws ConfigurationException, com.opencloud.util.exception.ValidationException, NullPointerException, InvalidArgumentException
Set the specified limiter as the parent of this limiter.
- Parameters:
parentName
-- Throws:
ConfigurationException
com.opencloud.util.exception.ValidationException
NullPointerException
InvalidArgumentException
-
-