public interface MonitoringJob
StatusVariable
s. The job is a data structure that
holds a non-empty list of StatusVariable
names, an identification of
the initiator of the job, and the sampling parameters. There are two kinds of
monitoring jobs: time based and change based. Time based jobs take samples of
all StatusVariable
s with a specified frequency. The number of samples
to be taken before the job finishes may be specified. Change based jobs are
only interested in the changes of the monitored StatusVariable
s. In
this case, the number of changes that must take place between two
notifications can be specified.
The job can be started on the MonitorAdmin
interface. Running the job
(querying the StatusVariable
s, listening to changes, and sending out
notifications on updates) is the task of the MonitorAdmin
implementation.
Whether a monitoring job keeps track dynamically of the
StatusVariable
s it monitors is not specified. This means that if we
monitor a StatusVariable
of a Monitorable
service which
disappears and later reappears then it is implementation specific whether we
still receive updates of the StatusVariable
changes or not.
Modifier and Type | Method and Description |
---|---|
String |
getInitiator()
Returns the identifier of the principal who initiated the job.
|
int |
getReportCount()
Returns the number of times
MonitorAdmin will query the
StatusVariable s (for time based jobs), or the number of changes
of a StatusVariable between notifications (for change based
jobs). |
int |
getSchedule()
Returns the delay (in seconds) between two samples.
|
String[] |
getStatusVariableNames()
Returns the list of
StatusVariable names that are the targets of
this measurement job. |
boolean |
isLocal()
Returns whether the job was started locally or remotely.
|
boolean |
isRunning()
Returns whether the job is running.
|
void |
stop()
Stops a Monitoring Job.
|
void stop()
String getInitiator()
MonitorAdmin.startJob
method is called. This string holds the ServerID
if the operation was initiated from a remote manager, or an arbitrary ID
of the initiator entity in the local case (used for addressing
notification events).null
String[] getStatusVariableNames()
StatusVariable
names that are the targets of
this measurement job. For time based jobs, the MonitorAdmin
will
iterate through this list and query all StatusVariable
s when its
timer set by the job's frequency rate expires.null
int getSchedule()
MonitorAdmin
queries each
StatusVariable
that belongs to this job every N seconds. The
value 0 means that the job is not scheduled but event based: in this case
instant notification on changes is requested (at every n-th change of the
value, as specified by the report count parameter).int getReportCount()
MonitorAdmin
will query the
StatusVariable
s (for time based jobs), or the number of changes
of a StatusVariable
between notifications (for change based
jobs). Time based jobs with non-zero report count will take
getReportCount()
*getSchedule()
time to finish. Time based
jobs with 0 report count and change based jobs do not stop automatically,
but all jobs can be stopped with the stop()
method.boolean isLocal()
true
if the job was started from the local device,
false
if the job was initiated from a management server
through the device management treeboolean isRunning()
true
if the job is still running, false
if it has
finishedCopyright © OSGi Alliance (2000, 2015). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0