|
IP*Works! V6 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--ipworks.Snmpagent
The SNMPAgent bean is used to implement SNMP Agent Applications.
The SNMPAgent bean implements a standard SNMP Agent as specified in the SNMP RFCs. The bean supports SNMP v1, v2c, and v3.
The bean provides both encoding/decoding and transport capabilities, making the task of developing a custom SNMP agent as simple as setting a few key properties and handling a few events. SNMP data such as SNMP object id-s (OID-s) are exchanged as text strings, thus further simplifying the task of handling them.
The bean is activated/deactivated by setting the Active property. This property enables or disables sending and receiving.
The bean operates asynchronously. Requests are received through events such as GetRequest , GetBulkRequest , GetNextRequest , etc.. and the corresponding responses are automatically
sent when the events return. Traps are sent through the SendTrap method.
SNMPv3 USM security passwords are requested through the GetUserPassword event, and event
parameters such as User and SecurityLevel provide information about the
security attributes of received requests, and enable granular decision capability about
what to provide and what not to provide. The SendSecureTrap method is used to send
authenticated (secure) SNMPv3 traps.
SNMP OIDs, types, and values are provided in arrays such as ObjId , ObjType , and ObjValue , for both
sent and received packets. ObjCount provides the number of elements in each of the arrays.
Other packet information is provided through corresponding event parameters, such as Community, or RequestId.
| Field Summary | |
static int |
otCounter32
|
static int |
otCounter64
|
static int |
otEndOfMibView
|
static int |
otGauge32
|
static int |
otInteger
|
static int |
otIPAddress
|
static int |
otNoSuchInstance
|
static int |
otNoSuchObject
|
static int |
otNSAP
|
static int |
otNull
|
static int |
otObjectId
|
static int |
otOctetString
|
static int |
otOpaque
|
static int |
otTimeTicks
|
static int |
otUnsignedInteger32
|
static int |
snmpverV1
|
static int |
snmpverV2c
|
static int |
snmpverV3
|
| Constructor Summary | |
Snmpagent()
|
|
| Method Summary | |
void |
addSnmpagentEventListener(SnmpagentEventListener l)
|
java.lang.String |
config(java.lang.String configurationString)
Sets or retrieves a beanconfiguration setting. |
void |
doEvents()
Processes events from the internal message queue. |
byte[] |
getLocalEngineId()
The Engine Id of the SNMP Agent. |
java.lang.String |
getLocalHost()
The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
int |
getLocalPort()
The UDP port in the local host where the bean listens. |
int |
getObjCount()
Number of objects in the current request. |
java.lang.String |
getObjId(int objIndex)
Array of OIDs encoded as strings. |
int |
getObjType(int objIndex)
Array of object types. |
byte[] |
getObjValue(int objIndex)
Array of object values. |
int |
getRequestId()
The request-id to mark outgoing packets with. |
int |
getSNMPVersion()
Version of SNMP used for outgoing requests (traps). |
int |
getSysUpTime()
Time passed since the agent was initialized (in hundredths of a second). |
boolean |
isAcceptData()
Enables or disables data reception. |
boolean |
isActive()
Enables or disables sending and receiving of SNMP packets. |
void |
removeSnmpagentEventListener(SnmpagentEventListener l)
|
void |
reset()
Clears the object arrays. |
void |
sendSecureTrap(java.lang.String remoteHost,
java.lang.String trapOID,
java.lang.String user,
java.lang.String password)
Sends an authenticated SNMPv3 trap. |
void |
sendTrap(java.lang.String remoteHost,
java.lang.String trapOID)
Sends an SNMP Trap. |
void |
setAcceptData(boolean acceptData)
Enables or disables data reception. |
void |
setActive(boolean active)
Enables or disables sending and receiving of SNMP packets. |
void |
setLocalEngineId(byte[] localEngineId)
The Engine Id of the SNMP Agent. |
void |
setLocalHost(java.lang.String localHost)
The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
void |
setLocalPort(int localPort)
The UDP port in the local host where the bean listens. |
void |
setObjCount(int objCount)
Number of objects in the current request. |
void |
setObjId(int objIndex,
java.lang.String objId)
Array of OIDs encoded as strings. |
void |
setObjType(int objIndex,
int objType)
Array of object types. |
void |
setObjValue(int objIndex,
byte[] objValue)
Array of object values. |
void |
setRequestId(int requestId)
The request-id to mark outgoing packets with. |
void |
setSNMPVersion(int SNMPVersion)
Version of SNMP used for outgoing requests (traps). |
void |
setSysUpTime(int sysUpTime)
Time passed since the agent was initialized (in hundredths of a second). |
java.lang.String |
value(java.lang.String OID)
Returns the value corresponding to an OID. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int otInteger
public static final int otOctetString
public static final int otNull
public static final int otObjectId
public static final int otIPAddress
public static final int otCounter32
public static final int otGauge32
public static final int otTimeTicks
public static final int otOpaque
public static final int otNSAP
public static final int otCounter64
public static final int otUnsignedInteger32
public static final int otNoSuchObject
public static final int otNoSuchInstance
public static final int otEndOfMibView
public static final int snmpverV1
public static final int snmpverV2c
public static final int snmpverV3
| Constructor Detail |
public Snmpagent()
| Method Detail |
public boolean isAcceptData()
Setting the property to False temporarily disables data reception. Setting the property to True re-enables data reception.
public void setAcceptData(boolean acceptData)
throws IPWorksException
Setting the property to False temporarily disables data reception. Setting the property to True re-enables data reception.
IPWorksExceptionpublic boolean isActive()
The Active property must be set to True before any SNMP
requests or traps are sent or received.
public void setActive(boolean active)
throws IPWorksException
The Active property must be set to True before any SNMP
requests or traps are sent or received.
IPWorksExceptionpublic byte[] getLocalEngineId()
This property is only used for SNMPv3 packets (when SNMPVersion is 3).
public void setLocalEngineId(byte[] localEngineId)
throws IPWorksException
This property is only used for SNMPv3 packets (when SNMPVersion is 3).
IPWorksExceptionpublic java.lang.String getLocalHost()
The LocalHost property contains the name of the local host
as obtained by the gethostname() system call, or if the
user has assigned an IP address, the value of that address.
In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the bean initiate connections (or accept in the case of server beans) only through that interface.
If the bean is connected, the LocalHost property shows
the IP address of the interface through which the connection
is made in internet dotted format (aaa.bbb.ccc.ddd). In most
cases, this is the address of the local host, except for multihomed
hosts (machines with more than one IP interface).
NOTE: LocalHost is not persistent. You must always set it in
code, and never in the property window.
public void setLocalHost(java.lang.String localHost)
throws IPWorksException
The LocalHost property contains the name of the local host
as obtained by the gethostname() system call, or if the
user has assigned an IP address, the value of that address.
In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the bean initiate connections (or accept in the case of server beans) only through that interface.
If the bean is connected, the LocalHost property shows
the IP address of the interface through which the connection
is made in internet dotted format (aaa.bbb.ccc.ddd). In most
cases, this is the address of the local host, except for multihomed
hosts (machines with more than one IP interface).
NOTE: LocalHost is not persistent. You must always set it in
code, and never in the property window.
IPWorksExceptionpublic int getLocalPort()
The LocalPort property must be set before the bean is
activated ( Active is set to True). It instructs the
bean to bind to a specific port (or communication
endpoint) in the local machine (default 161).
You may also set LocalPort to 0. This allows the TCP/IP stack
to choose a port at random. The value chosen is provided via the LocalPort property after the bean is activated through the Active property.
LocalPort cannot be changed once the bean is Active .
Any attempt to set the LocalPort property when the bean
is Active will generate an error.
public void setLocalPort(int localPort)
throws IPWorksException
The LocalPort property must be set before the bean is
activated ( Active is set to True). It instructs the
bean to bind to a specific port (or communication
endpoint) in the local machine (default 161).
You may also set LocalPort to 0. This allows the TCP/IP stack
to choose a port at random. The value chosen is provided via the LocalPort property after the bean is activated through the Active property.
LocalPort cannot be changed once the bean is Active .
Any attempt to set the LocalPort property when the bean
is Active will generate an error.
IPWorksExceptionpublic int getObjCount()
The ObjCount property provides the number of elements in the
various Obj arrays ( ObjId , ObjType , ObjValue ).
The arrays may be cleared at any time by setting the ObjCount to 0.
public void setObjCount(int objCount)
throws IPWorksException
The ObjCount property provides the number of elements in the
various Obj arrays ( ObjId , ObjType , ObjValue ).
The arrays may be cleared at any time by setting the ObjCount to 0.
IPWorksException
public java.lang.String getObjId(int objIndex)
throws IPWorksException
The object id-s are encoded as strings of numbers separated by "."-s, for instance: "1.3.6.1.2.1.1.1.0" (OID for "system description").
The size of the array is determined by the ObjCount property. Element
indexes start at 1.
The array is populated and its size is set every time an SNMP packet is received. It is also used to create outgoing SNMP packets.
The corresponding object type and value (if any) are specified by the ObjType and ObjValue property arrays.
Example
SNMPControl.ObjCount = 2
SNMPControl.ObjID(1) = "1.3.6.1.2.1.1.1.0"
SNMPControl.ObjID(2) = "1.3.6.1.2.1.1.2.0"
IPWorksException
public void setObjId(int objIndex,
java.lang.String objId)
throws IPWorksException
The object id-s are encoded as strings of numbers separated by "."-s, for instance: "1.3.6.1.2.1.1.1.0" (OID for "system description").
The size of the array is determined by the ObjCount property. Element
indexes start at 1.
The array is populated and its size is set every time an SNMP packet is received. It is also used to create outgoing SNMP packets.
The corresponding object type and value (if any) are specified by the ObjType and ObjValue property arrays.
Example
SNMPControl.ObjCount = 2
SNMPControl.ObjID(1) = "1.3.6.1.2.1.1.1.0"
SNMPControl.ObjID(2) = "1.3.6.1.2.1.1.2.0"
IPWorksException
public int getObjType(int objIndex)
throws IPWorksException
The size of the array is determined by the ObjCount property. Element
indexes start at 1.
The array is populated and its size is set every time an SNMP packet is received. It is also used to create an outgoing SNMP packet when a send or request method is called. The default type is NULL (5).
The corresponding object id and value are specified by the ObjId and ObjValue property arrays.
Possible object type values include:
The bean also supports the following artificial object values used to designate error conditions:
IPWorksException
public void setObjType(int objIndex,
int objType)
throws IPWorksException
The size of the array is determined by the ObjCount property. Element
indexes start at 1.
The array is populated and its size is set every time an SNMP packet is received. It is also used to create an outgoing SNMP packet when a send or request method is called. The default type is NULL (5).
The corresponding object id and value are specified by the ObjId and ObjValue property arrays.
Possible object type values include:
The bean also supports the following artificial object values used to designate error conditions:
IPWorksException
public byte[] getObjValue(int objIndex)
throws IPWorksException
The size of the array is determined by the ObjCount property. Element
indexes start at 1.
The array is populated and its size is set every time an SNMP packet is received. It is also used to create an outgoing SNMP packet when a send or request method is called.
The corresponding object id and type are specified by the ObjId and ObjType property arrays.
Example
SNMPControl.ObjCount = 1
SNMPControl.ObjID(1) = "1.3.6.1.2.1.1.1.0"
SNMPControl.ObjValue(1) = "New Value"
IPWorksException
public void setObjValue(int objIndex,
byte[] objValue)
throws IPWorksException
The size of the array is determined by the ObjCount property. Element
indexes start at 1.
The array is populated and its size is set every time an SNMP packet is received. It is also used to create an outgoing SNMP packet when a send or request method is called.
The corresponding object id and type are specified by the ObjId and ObjType property arrays.
Example
SNMPControl.ObjCount = 1
SNMPControl.ObjID(1) = "1.3.6.1.2.1.1.1.0"
SNMPControl.ObjValue(1) = "New Value"
IPWorksExceptionpublic int getRequestId()
If a custom value is needed for RequestId , the property must be set
before sending the request. The bean increments RequestId automatically after sending each packet.
public void setRequestId(int requestId)
throws IPWorksException
If a custom value is needed for RequestId , the property must be set
before sending the request. The bean increments RequestId automatically after sending each packet.
IPWorksExceptionpublic int getSNMPVersion()
This property takes one of the following values:
public void setSNMPVersion(int SNMPVersion)
throws IPWorksException
This property takes one of the following values:
IPWorksExceptionpublic int getSysUpTime()
This property is used when sending SNMP traps, and it normally provides the time since the system was restarted in 1/100s of a second.
If another value is desired, you may set this property to a custom value.
From that point on, SysUpTime will return the value set plus time elapsed.
public void setSysUpTime(int sysUpTime)
throws IPWorksException
This property is used when sending SNMP traps, and it normally provides the time since the system was restarted in 1/100s of a second.
If another value is desired, you may set this property to a custom value.
From that point on, SysUpTime will return the value set plus time elapsed.
IPWorksException
public java.lang.String config(java.lang.String configurationString)
throws IPWorksException
Config is a generic method available in every bean.
It is used to set and retrieveconfiguration settingsfor the
bean.
Configuration settings are similar in functionality to properties,
but they are rarely used. In order to avoid "polluting" the property
namespace of the bean, access to these internal properties is provided through the Config method.
To set a configuration setting named PROPERTY , you must call Config("PROPERTY=VALUE") , where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY") . The value will be returned as a string.
IPWorksException
public void doEvents()
throws IPWorksException
When DoEvents is called, the bean processes any
available events. If no events are available, it waits for a
preset period of time, and then returns.
IPWorksException
public void reset()
throws IPWorksException
Clears the object arrays, and sets the trap and error properties to their default values. This is useful for reinitializing all the properties that are used to create outgoing packets before building a new packet.
IPWorksException
public void sendSecureTrap(java.lang.String remoteHost,
java.lang.String trapOID,
java.lang.String user,
java.lang.String password)
throws IPWorksException
Similar to the SendTrap method except that User and Password are used to authenticate the trap.
IPWorksException
public void sendTrap(java.lang.String remoteHost,
java.lang.String trapOID)
throws IPWorksException
Depending upon the value of the SNMPVersion property,
the packet is constructed as an SNMPv1 or SNMPv2 Trap PDU. The following
configuration settings provide more control about how traps are generated:TrapPort,TrapAgentAddress,TrapCommunity,TrapEnterprise. The SysUpTime property provides the
trap timestamp.
SendTrap sends an unauthenticated trap. The SendSecureTrap method is used to send authenticated SNMPv3 traps.
If any values are provided in the ObjId , ObjType , ObjValue arrays,
(i.e. ObjCount is greater than 0), they are sent unchanged. In the case of
an SNMPv2 or SNMPv3 Trap, if ObjCount is 0, the following values are set:
sysUpTime.0 equal to SysUpTime and snmpTrapOID.0 equal to TrapOID .
For SNMPv2 and SNMPv3 Traps, TrapOID must contain the full OID of the Trap. For SNMPv1, TrapOID must be a string of the form "generic.specific" where generic and specific are numeric values providing the Trap Generic Type and Specific Type.
For SNMPv1, TrapOID must be of the form "GenericTrap.SpecificTrap". These values are sent in the PDU header.TrapAgentAddressandTrapEnterpriseare taken from the corresponding configuration settings.
Additionally, the following symbolic values are recognized and translated as follows:
IPWorksException
public java.lang.String value(java.lang.String OID)
throws IPWorksException
If the OID does not exist in the ObjId array, a trappable error
is generated.
Please refer to the ObjId and ObjValue properties
for more information.
IPWorksException
public void addSnmpagentEventListener(SnmpagentEventListener l)
throws java.util.TooManyListenersException
java.util.TooManyListenersExceptionpublic void removeSnmpagentEventListener(SnmpagentEventListener l)
|
IP*Works! V6 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||