Why is SNMP4J free? Currently there is a lack of an affordable well object oriented designed SNMP implementation for Java. SNMP4J tries to fill this gap. It is free to get the best support and feedback from the Internet community. In addition it is a small compensation for the help we got from other open source projects. Nevertheless you are welcome to support the development of SNMP4J by purchasing commercial e-mail support.
Where can I find examples for SNMP4J API usage? Simple examples are provided by the JavaDoc of the SNMP class which can be viewed here. A (nearly) complete example for the SNMP4J API usage is the console tool. It can be found in the org.snmp4j.tools.console.SnmpRequest class.
Is SNMP4J thread-safe? Yes, SNMP4J is designed for multi-threaded environments. Nevertheless, objects put into a PDU must not be modified while the corresponding SNMP request is being processed.
Why do I get sometimes a time-out (response == null) on a request although I see log messages like “Received response that cannot be matched to any outstanding request...”? The response of the agent has been received after the request had been timed out. To solve this, increase the time-out value for the target.
Why am I always getting a time-out (response == null) when sending a request? Probably you have forgotten to call the listen() method of the TransportMapping (once) or the Snmp class before sending the request.
Can I use a single Snmp instance to request data from multiple SNMP agents at the same time? Yes, of course! You can either use asynchronous requests and collect their responses in a one or more callback listeners or you can use synchronous requests that are send from several threads concurrently.
Can SNMP4J be used with Java EE? Yes, the SNMP4JSettings class provides the option to replace the default thread and timer factories by custom ones that use Java EE resources instead of Java SE threads (timers).