com.adventnet.snmp.beans
Class SnmpPoller
java.lang.Object
|
+--com.adventnet.snmp.beans.SnmpServer
|
+--com.adventnet.snmp.beans.SnmpTarget
|
+--com.adventnet.snmp.beans.SnmpPoller
- All Implemented Interfaces:
- CustomizerTemplate, java.util.EventListener, java.lang.Runnable, java.io.Serializable, java.beans.VetoableChangeListener
- public class SnmpPoller
- extends SnmpTarget
- implements java.lang.Runnable, java.beans.VetoableChangeListener
This class is an SNMP Poller bean for automatic polling of one or more
variables from a given remote agent.
After each poll, it generates events, i.e. ResultEvent objects,
for which listeners can be registered.It can be used with bean builders and
other applications, where you can set up SNMP polling and automatic updates.
The SnmpPoller bean is a sub-class of the SnmpTarget bean. It uses
SnmpTarget for polling the data. The class using SnmpPoller should
instantiate SnmpPoller and set up the properties like hostname, port,
version, community of the agent, etc., to match the agent that needs to
be queried. Set the ObjectID to be polled and add one or more listeners
for receiving the polled data. The result data can also be plotted in Graph
(LineGraph or BarGraph).
SnmpPoller poller = new SnmpPoller(); // Instantiate SnmpPoller.
poller.setObjectID("1.3.0"); //the OID to be polled
poller.setTargetHost("localhost"); //the host name or IP address of the machine.
poller.setPollInterval(10); //polling interval in seconds. Default is 5 seconds.
poller.setSendTimeoutEvents(true); // to receive timeout events.
ResultAdapter listener = new ResultAdapter() {
public void setResult(ResultEvent evt) {
if(evt.isSuccess()) {
System.err.println("SnmpPoller Response: "+evt.getValue(0));
}
else {
System.out.println("Error String : " + evt.getErrorString());
}
}
};
poller.addResultListener(listener);
In some cases it may be required that the poller should not start polling automatically.
To achieve this:
poller.setAutoActive(false); //to avoid polling getting started automatically
Now the poller will not start polling automatically. To start polling the data:
poller.restartPolling(); //to start polling the SNMP data.
For polling multiple OIDs,
poller.setObjectIDList(oids);
ResultListener listener = new ResultListener() {
public void setResult(ResultEvent evt) {
if(evt.isSuccess()) {
System.out.println("SnmpPoller Response: ");
for(int i=0;i
Different SnmpPoller instances on the same JVM, will reuse the SnmpAPI,
SnmpSession and MibOperations instance. So, for releasing these resources,
releaseResources() method should be called on every SnmpPoller instance
created and when this method is called on the final instance of SnmpPoller,
these will be garbage collected.
See the superclass SnmpTarget, for details on parameters
and more on methods for setting up the poller parameters.
- See Also:
SnmpTarget
,
ResultEvent
,
ResultListener
, Serialized Form
Fields inherited from class com.adventnet.snmp.beans.SnmpTarget |
serialize, SNMPGET, SNMPGETBULK, SNMPGETNEXT, SNMPINFORM, SNMPREPORT, SNMPRESPONSE, SNMPSET, SNMPTRAP, SNMPV2TRAP, VERSION1, VERSION2C, VERSION3 |
Constructor Summary |
SnmpPoller()
This constructor is used for polling data applications. |
SnmpPoller(java.applet.Applet applet)
This constructor is used for applets. |
SnmpPoller(int protocol,
ProtocolOptions options)
This constructor is used for applications which use protocols
other than UDP/IP. |
Method Summary |
void |
addResultListener(ResultListener l)
add a listener for events from this poller. |
protected void |
finalize()
this cleans up if no one is using |
protected void |
genEvent(SnmpPDU pdu)
generate the events to the listeners |
boolean |
getAbsoluteCounters()
To get whether the value returned by the poller will be the absolute value or
the difference between successive counters. |
boolean |
getPollingStatus()
returns whether the polling of some data is going on or not. |
int |
getPollInterval()
get the current polling interval in seconds |
boolean |
isAutoActive()
returns whether the poller will be started automatically i.e. |
void |
pausePolling()
stops the polling. |
void |
removeResultListener(ResultListener l)
Remove a listener for events from this poller. |
void |
restartPolling()
Restart the SNMP polling. |
void |
run()
the work done by the polling thread. |
void |
setAbsoluteCounters(boolean absoluteCounters)
sets whether counter values should be absolute - applies only for single
variable requests. |
void |
setAutoActive(boolean isAutoActive)
To make the poller to start polling automatically after setting either OID or
poll interval or after adding the first result listener. |
void |
setObjectID(int index,
java.lang.String s)
Set the object ID value at index based on specified string |
void |
setObjectID(java.lang.String s)
Set the object ID specified by the String value. |
void |
setObjectIDList(java.lang.String[] s)
Set the list of object IDs based on the specified string array. |
void |
setPollInterval(int i)
set the polling interval in seconds |
void |
stopPolling()
Stop the polling and Stops the thread - disables the data collection from
the agent and event generation. |
void |
vetoableChange(java.beans.PropertyChangeEvent evt)
Sets the properties constrained properties. |
Methods inherited from class com.adventnet.snmp.beans.SnmpTarget |
addLogClient, addLogClient, addObjectID, addSnmpOID, addSnmpPropertyListener, addV3HandShakeResultListener, genTimeoutEvent, getAttemptComplete, getAttemptPartial, getAuthPassword, getAuthProtocol, getCommunity, getCompleteResponse, getContextID, getContextName, getDebug, getErrorCode, getErrorIndex, getErrorString, getExceptionCode, getIgnoreSpecificControlCodes, getMaxNumRows, getMaxRepetitions, getMibModules, getMibOperations, getNonRepeaters, getObjectID, getObjectID, getObjectIDList, getPrincipal, getPrivPassword, getRetries, getSecurityLevel, getSecurityModel, getSendTimeoutEvents, getSnmpOID, getSnmpOIDList, getSnmpVersion, getTargetHost, getTargetPort, getTimeout, getVarBindCount, getWriteCommunity, isInSubTree, isSerialize, loadMibs, releaseResources, removeLogClient, removeSnmpPropertyListener, removeV3HandShakeListener, setAttemptComplete, setAttemptPartial, setAuthPassword, setAuthProtocol, setCommunity, setContextID, setContextName, setDebug, setIgnoreSpecificControlCodes, setMaxNumRows, setMaxRepetitions, setMibModules, setNonRepeaters, setParams, setParams, setPrincipal, setPrivPassword, setRetries, setSecurityLevel, setSecurityModel, setSendTimeoutEvents, setSnmpOID, setSnmpOIDList, setSnmpVersion, setTargetHost, setTargetPort, setTimeout, setVarBindCount, setWriteCommunity, snmpGet, snmpGet, snmpGetAllList, snmpGetAllVariableBindings, snmpGetAllVariables, snmpGetBulkList, snmpGetBulkVariableBindings, snmpGetBulkVariables, snmpGetList, snmpGetList, snmpGetNext, snmpGetNext, snmpGetNextList, snmpGetNextList, snmpGetNextVariable, snmpGetNextVariableBinding, snmpGetNextVariableBindings, snmpGetNextVariables, snmpGetVariable, snmpGetVariableBinding, snmpGetVariableBindings, snmpGetVariables, snmpSendInformAcknowledgement, snmpSendInformRequest, snmpSendInformRequest, snmpSendNotification, snmpSendNotification, snmpSendTrap, snmpSendTrap, snmpSet, snmpSet, snmpSetList, snmpSetVariable, snmpSetVariables |
Methods inherited from class com.adventnet.snmp.beans.SnmpServer |
async_create_v3_tables, create_v3_tables, genEvent, getCharacterEncoding, getHostAddress, getLocalAddresses, getMibPath, getOverwriteCMI, getSecLevelForTimeSync, getSecurityProvider, getSecurityTable, getSerializedMibFileName, getSnmpEngineID, getSnmpEngineTable, getTimeoutInMilliSec, getTimeToWait, getUSMTable, getV3ConfigTable, initJdbcParams, initSecurityProvider, isLoadFromCompiledMibs, isLoadFromSerializedMibs, isLoadMibsFromDatabase, isOverwriteCMI, isOverwriteMibsInDatabase, isReadDesc, isSendPDUByGroup, isSerializeMibs, isSetAutoInformResponse, isSupportedSecurityModel, isV3DatabaseFlag, manage_v3_tables, managing_v3_tables, setAutoInformResponse, setCharacterEncoding, setLoadFromCompiledMibs, setLoadFromSerializedMibs, setLoadMibsFromDatabase, setMibOperations, setMibPath, setOverwriteCMI, setOverwriteMibsInDatabase, setReadDesc, setReceiveBufferSize, setSecLevelForTimeSync, setSendPDUByGroup, setSerializedMibFileName, setSerializeMibs, setSnmpEngineID, setTimeoutInMilliSec, setTimeToWait, setV3ConfigTable, setV3DatabaseFlag |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SnmpPoller
public SnmpPoller()
- This constructor is used for polling data applications.
SnmpPoller
public SnmpPoller(java.applet.Applet applet)
- This constructor is used for applets.
SnmpPoller
public SnmpPoller(int protocol,
ProtocolOptions options)
- This constructor is used for applications which use protocols
other than UDP/IP.
run
public void run()
- the work done by the polling thread.
The following ErrorCodes can be set: SNMP_NOT_INIT, INVALID_VERSION,
OID_NOT_SPECIFIED, REQ_TIMEDOUT, EMPTY_VAR_BIND, IP_ADDR_NOT_SPECIFIED,
SESSION_REMOTE_HOST_UNKNOWN, SECURITYEXP_CONNECTING_REMOTE_HOST, UNKNOWN_ERR,
SNMPERROR'S defined in ErrorMessages
INVALID_CONTEXT_NAME ,INVALID_CONTEXT_ID.
- Specified by:
run
in interface java.lang.Runnable
- See Also:
ErrorMessages
,
SnmpTarget.getErrorCode()
,
SnmpTarget.getErrorString()
finalize
protected void finalize()
throws java.lang.Throwable
- this cleans up if no one is using
- Overrides:
finalize
in class SnmpServer
- Throws:
java.lang.Throwable
- in case of finalization errors
getPollingStatus
public boolean getPollingStatus()
- returns whether the polling of some data is going on or not. If polling has stopped
or if the polling thread has died,it will return false.
stopPolling
public void stopPolling()
- Stop the polling and Stops the thread - disables the data collection from
the agent and event generation. Prior to 2.1 release, stop polling only stops the polling and not the thread. To pause the polling stopping the thread use pausePolling.
pausePolling
public void pausePolling()
- stops the polling. Does not stop the thread - disables the data
collection from the agent and event generation.
restartPolling
public void restartPolling()
- Restart the SNMP polling. If the thread has died for any reason,
reinstantiate the polling thread and start it again.
isAutoActive
public boolean isAutoActive()
- returns whether the poller will be started automatically i.e. Once if the
objectID or poll interval is set or the first result listener is added.
By default this method will return true and hence after setting objectID using setObjectID
or after setting the poll interval using setPollInterval(poll interval) or after adding the
result listener using addResultListener() the Poller will start Polling automatically.
To avoid this, setAutoActive to false can be used. In such case restartPolling can be used to start Polling.
setAutoActive
public void setAutoActive(boolean isAutoActive)
- To make the poller to start polling automatically after setting either OID or
poll interval or after adding the first result listener. Boolean true should be passed to this method.
If the poller should not start polling by itself,then false should be passed in which such case,
polling should be initiated using restartpolling method.
getPollInterval
public int getPollInterval()
- get the current polling interval in seconds
setPollInterval
public void setPollInterval(int i)
- set the polling interval in seconds
getAbsoluteCounters
public boolean getAbsoluteCounters()
- To get whether the value returned by the poller will be the absolute value or
the difference between successive counters.
- Returns:
- true if the poller will return the absolute value of the counters and
false if the poller will return the difference between the successive counter values.
setObjectID
public void setObjectID(java.lang.String s)
- Set the object ID specified by the String value.
- Overrides:
setObjectID
in class SnmpTarget
- Parameters:
s
- the oid to be set.
setObjectID
public void setObjectID(int index,
java.lang.String s)
- Set the object ID value at index based on specified string
- Overrides:
setObjectID
in class SnmpTarget
- Parameters:
index
- index where the oid is to be set in the oidlists
- oid to be set.
setObjectIDList
public void setObjectIDList(java.lang.String[] s)
- Set the list of object IDs based on the specified string array.
- Overrides:
setObjectIDList
in class SnmpTarget
- Parameters:
s
- a String array of OIDs.
setAbsoluteCounters
public void setAbsoluteCounters(boolean absoluteCounters)
- sets whether counter values should be absolute - applies only for single
variable requests. This has an impact only on the results of the
counter data types only. If it is set to true, the poller will return
the absolute value of the counter. If it is set to false, the result
returned will be a difference between successive counter values. This
will be useful for plotting the counter values.
For multi-oid requests, it's up to the listener
to process the counters correctly.
genEvent
protected void genEvent(SnmpPDU pdu)
- generate the events to the listeners
- Overrides:
genEvent
in class SnmpTarget
addResultListener
public void addResultListener(ResultListener l)
- add a listener for events from this poller. The listener listens
for events from any or all SNMP requests.
- Overrides:
addResultListener
in class SnmpTarget
removeResultListener
public void removeResultListener(ResultListener l)
- Remove a listener for events from this poller.
- Overrides:
removeResultListener
in class SnmpTarget
vetoableChange
public void vetoableChange(java.beans.PropertyChangeEvent evt)
- Sets the properties constrained properties.
PropertyChangeEvent.getNewValue() expects a Hashtable of constrainted properties.
Constrained property set are:
SNMP Version with key VERSION
Host Name with key HOST
Port Number with key PORT
Polling Interval with key POLL
Timeout value with key TIMEOUT
Retries value with key RETRIES
Auth Protocol with key AUTHPROT
User Name with key USERNAME
Auth Password with key AUTHPASS
Privacy Password with key PRIVPASS
- Specified by:
vetoableChange
in interface java.beans.VetoableChangeListener
- Overrides:
vetoableChange
in class SnmpTarget
Copyright (c)AdventNet Inc., 1996-2004