org.smartfrog.examples.dynamicwebserver.monitor
Class CPUMonitorImpl
java.lang.Object
org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
org.smartfrog.sfcore.prim.PrimImpl
org.smartfrog.examples.dynamicwebserver.monitor.CPUMonitorImpl
- All Implemented Interfaces:
- java.lang.Runnable, java.rmi.Remote, DataSource, CPUMonitor, MessageKeys, Diagnostics, Liveness, Prim, RemoteReferenceResolver, RemoteReferenceResolverHelper
public class CPUMonitorImpl
- extends PrimImpl
- implements Prim, java.lang.Runnable, CPUMonitor, DataSource
There are basically two ways in which this component could work.
1) Send
the status every minute to the Control object. The problem with this is
that if the control object was controlling 1000 machines this could means
lots of traffic and not necessarily the most scalable option.
2) Notify the
Control object when the CPU usgae exceeds a certain level. The Control
object could then periodically poll the Monitor component. But at all times
it would be possible for the Control object to query the Monitor component.
| Fields inherited from class org.smartfrog.sfcore.prim.PrimImpl |
refLivenessDelay, refLivenessFactor, sfCompleteName, sfContext, sfDeployHooks, sfDeployWithHooks, sfExportRef, sfIsDeployed, sfIsStarted, sfIsTerminated, sfIsTerminating, sfLivenessCount, sfLivenessDelay, sfLivenessFactor, sfLivenessSender, sfParent, sfStartHooks, sfTerminateWithHooks, termLock |
| Fields inherited from interface org.smartfrog.examples.dynamicwebserver.monitor.CPUMonitor |
DELAY, LOGTO |
| Fields inherited from interface org.smartfrog.sfcore.common.MessageKeys |
CANNOT_LINK_TO_PREDICATE, COMPONENT_TERMINATED, COPY_FAILED, COPY_SERIALIZE_FAILED, ERROR_NO_SECURITY_BUT_REQUIRED, ILLEGAL_BOOLEAN_PARAMETER, ILLEGAL_NUMERIC_PARAMETER, ILLEGAL_STRING_PARAMETER, ILLEGAL_VECTOR_PARAMETER, LIVENESS_SEND_FAILURE, LIVENESS_SEND_FAILURE_IN, MISSING_PARAMETER, MSG_CLASS_NOT_FOUND, MSG_CONNECT_ERR, MSG_CONT_OTHER_DEPLOY, MSG_DEPLOY_COMP_TERMINATED, MSG_DEPLOY_SUCCESS, MSG_DEPLOYWITH_PHASE_FAILED, MSG_DETACH_SUCCESS, MSG_DETACH_TERMINATE_SUCCESS, MSG_ERR_DEPLOY_FROM_URL, MSG_ERR_PARSE, MSG_ERR_RESOLVE_PHASE, MSG_ERR_SF_RUNNING, MSG_ERR_TERM, MSG_FAILED_INET_ADDRESS_LOOKUP, MSG_FAILED_TO_CONTACT_PARENT, MSG_FILE_NOT_FOUND, MSG_HOOK_ACTION_FAILED, MSG_ILLEGAL_ACCESS, MSG_ILLEGAL_CLASS_TYPE, MSG_ILLEGAL_CLASS_TYPE_EXPECTING_GOT, MSG_ILLEGAL_REFERENCE, MSG_INPUTSTREAM_NULL, MSG_INSTANTIATION_ERROR, MSG_INVALID_OBJECT_TYPE, MSG_INVOCATION_TARGET, MSG_LANG_NOT_FOUND, MSG_LIVENESS_START_FAILED, MSG_LOADING_URL, MSG_METHOD_NOT_FOUND, MSG_NON_REP_ATTRIB, MSG_NOT_COMPONENT_REFERENCE, MSG_NOT_FOUND_ATTRIBUTE, MSG_NOT_FOUND_REFERENCE, MSG_NOT_VALUE_REFERENCE, MSG_NULL_DEF_METHOD, MSG_NULL_URL, MSG_OBJECT_REGISTRATION_FAILED, MSG_PARENT_LOCATION_FAILED, MSG_PING_SUCCESS, MSG_RANDM_ERR, MSG_REMOTE_CONNECT_ERR, MSG_REPEATED_ATTRIBUTE, MSG_SF_DEAD, MSG_SF_READY, MSG_SF_TERMINATED, MSG_STACKTRACE_FOLLOWS, MSG_START_COMP_TERMINATED, MSG_TERMINATE_SUCCESS, MSG_UNHANDLED_EXCEPTION, MSG_UNKNOWN_HOST, MSG_UNRESOLVED_REFERENCE, MSG_UNRESOLVED_REFERENCE_IN, MSG_UPDATE_SUCCESS, MSG_URL_NOT_FOUND, MSG_URL_TO_PARSE_NOT_FOUND, MSG_WARNING_LIVENESS_ENABLED, MSG_WARNING_STACKTRACE_DISABLED, MSG_WARNING_STACKTRACE_ENABLED, ROOT_MUST_BE_COMPONENT, WARN_NO_SECURITY |
| Methods inherited from class org.smartfrog.sfcore.prim.PrimImpl |
equals, hashCode, registerWithProcessCompound, sfAddAttribute, sfAttributeKeyFor, sfAttributes, sfCompleteName, sfCompleteNameSafe, sfContainsAttribute, sfContainsValue, sfContext, sfDeployedHost, sfDeployedProcessName, sfDeployWith, sfDetach, sfDetachAndTerminate, sfDiagnosticsReport, sfDumpState, sfExport, sfExportRef, sfExportRef, sfGetApplicationLog, sfGetCoreLog, sfGetLog, sfIsDeployed, sfIsRemote, sfIsStarted, sfIsTerminated, sfIsTerminating, sfLivenessFailure, sfLog, sfParent, sfParentageChanged, sfPing, sfRemoveAttribute, sfReplaceAttribute, sfResolve, sfResolve, sfResolveHere, sfResolveHere, sfResolveParent, sfSetLog, sfStartLivenessSender, sfStopLivenessSender, sfTerminate, sfTerminatedWith, sfTerminateQuietlyWith, sfValues, terminateComponent, terminateNotifying, toString |
| Methods inherited from class org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl |
sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolveWithParser |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.smartfrog.sfcore.prim.Prim |
sfAddAttribute, sfAttributeKeyFor, sfAttributes, sfCompleteName, sfContainsAttribute, sfContainsValue, sfContext, sfDeployedHost, sfDeployedProcessName, sfDeployWith, sfDetach, sfDetachAndTerminate, sfDumpState, sfIsDeployed, sfIsStarted, sfIsTerminated, sfIsTerminating, sfParent, sfParentageChanged, sfRemoveAttribute, sfReplaceAttribute, sfTerminate, sfTerminatedWith, sfTerminateQuietlyWith, sfValues |
| Methods inherited from interface org.smartfrog.sfcore.prim.Liveness |
sfPing |
| Methods inherited from interface org.smartfrog.sfcore.reference.RemoteReferenceResolverHelper |
sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolveWithParser |
CPUMonitorImpl
public CPUMonitorImpl()
throws java.rmi.RemoteException
- Throws:
java.rmi.RemoteException
sfDeploy
public void sfDeploy()
throws SmartFrogException,
java.rmi.RemoteException
- Description copied from class:
PrimImpl
- Called after instantiation for deployment purposes. Heart monitor is
started and if there is a parent the deployed component is added to the
heartbeat. Subclasses can override to provide additional deployment
behavior.
- Specified by:
sfDeploy in interface Prim- Overrides:
sfDeploy in class PrimImpl
- Throws:
SmartFrogException - error while deploying
java.rmi.RemoteException - In case of network/rmi error
sfStart
public void sfStart()
throws SmartFrogException,
java.rmi.RemoteException
- Description copied from class:
PrimImpl
- Can be called to start components. Subclasses should override to provide
functionality Do not block in this call, but spawn off any main loops!
- Specified by:
sfStart in interface Prim- Overrides:
sfStart in class PrimImpl
- Throws:
SmartFrogException - failure while starting
java.rmi.RemoteException - In case of network/rmi error
sfTerminateWith
public void sfTerminateWith(TerminationRecord tr)
- Description copied from class:
PrimImpl
- Provides hook for subclasses to implement useful termination behavior.
Deregisters component from local process compound (if ever registered)
- Overrides:
sfTerminateWith in class PrimImpl
- Parameters:
tr - termination status
getData
public int getData()
throws java.rmi.RemoteException
- Description copied from interface:
DataSource
- Returns an int containing the data
- Specified by:
getData in interface DataSource
- Returns:
- DOCUMENT ME!
- Throws:
java.rmi.RemoteException
getCurrent
public int getCurrent()
throws java.rmi.RemoteException
- Specified by:
getCurrent in interface CPUMonitor
- Throws:
java.rmi.RemoteException
getAverageLastMinute
public int getAverageLastMinute()
throws java.rmi.RemoteException
- Specified by:
getAverageLastMinute in interface CPUMonitor
- Throws:
java.rmi.RemoteException
getAverageLast10Minutes
public int getAverageLast10Minutes()
throws java.rmi.RemoteException
- Specified by:
getAverageLast10Minutes in interface CPUMonitor
- Throws:
java.rmi.RemoteException
getAverageLast30Minutes
public int getAverageLast30Minutes()
throws java.rmi.RemoteException
- Specified by:
getAverageLast30Minutes in interface CPUMonitor
- Throws:
java.rmi.RemoteException
getAverageLast60Minutes
public int getAverageLast60Minutes()
throws java.rmi.RemoteException
- Specified by:
getAverageLast60Minutes in interface CPUMonitor
- Throws:
java.rmi.RemoteException
updateFigures
public void updateFigures(int newMin)
run
public void run()
- Specified by:
run in interface java.lang.Runnable
(C) Copyright 1998-2006 Hewlett-Packard Development Company, LP