This section provides information on how to solve common problems when implementing SNMP Agent as a plug-in module.
<...> - <ID...> <ERROR> <WSP4005> com.systinet.wasp.admin.snmp.SnmpModule - init failed: java.net.BindException: Permission denied - EXCEPTION: java.net.BindException: Permission denied java.net.BindException: Permission denied at java.net.PlainDatagramSocketImpl.bind(Native Method) at java.net.DatagramSocket.create(DatagramSocket.java:163) at java.net.DatagramSocket.<init>(DatagramSocket.java:135) at java.net.DatagramSocket.<init>(DatagramSocket.java:107) at com.ireasoning.core.network.n.open(n.java:61) at com.ireasoning.core.jmx.AdaptorServer.a(AdaptorServer.java:129) at com.ireasoning.core.jmx.AdaptorServer.startService(AdaptorServer.java:247) at java.lang.reflect.Method.invoke(Native Method) at com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(StandardMetaDataImpl.java:410) at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:228) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke (DefaultMBeanServerInterceptor.java:822) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) at com.ireasoning.core.jmx.BaseAgent.startAdaptorServer(BaseAgent.java:160) at com.ireasoning.protocol.snmp.SnmpBaseAgent.c(SnmpBaseAgent.java:568) at com.ireasoning.protocol.snmp.SnmpBaseAgent.a(SnmpBaseAgent.java:369) at com.ireasoning.protocol.snmp.SnmpBaseAgent.<init>(SnmpBaseAgent.java:306) at com.ireasoning.protocol.snmp.SnmpBaseAgent.<init>(SnmpBaseAgent.java:277) at com.ireasoning.protocol.snmp.SnmpBaseAgent.<init>(SnmpBaseAgent.java:252) at com.systinet.wasp.admin.snmp.agent.Agent.<init>(Agent.java:20) at com.systinet.wasp.admin.snmp.SnmpModule.init(SnmpModule.java:223) at com.idoox.wasp.ModuleRepository.loadModules(ModuleRepository.java:225) at com.systinet.wasp.WaspImpl.boot(WaspImpl.java:366) at org.systinet.wasp.Wasp.init(Wasp.java:150) at org.systinet.wasp.Wasp.init(Wasp.java:61) at com.idoox.wasp.server.Main.start(Main.java:25) at com.idoox.wasp.server.Main.main(Main.java:89) at java.lang.reflect.Method.invoke(Native Method) at com.idoox.build.ant.Runner.main(Runner.java:153)
Generally on UNIX systems, ports below 1024 are not widely accessible to users. In order to access these ports, the user must have 'superuser' or 'root' access rights.
In order to use UDP port 161 for SNMP Agent, this port must not be bound by another process.
In case UDP port 161 is bound by another process, the SNMP module binding fails. The error description can be then viewed in the %WASP_HOME%/log/errorEvents.log file as:
<...> - <ID...> <ERROR> <WSP4005> com.systinet.wasp.admin.snmp.SnmpModule - init failed: java.net.BindException: Address already in use: Cannot bind - EXCEPTION: java.net.BindException: Address already in use: Cannot bind java.net.BindException: Address already in use: Cannot bind <stack trace may follow>
as well as in the %WASP_HOME%/log/logEvents.log file as:
<...> - <ID...> <ERROR> <WSP4005> com.systinet.wasp.admin.snmp.SnmpModule - init failed: java.net.BindException: Address already in use: Cannot bind - EXCEPTION: java.net.BindException: Address already in use: Cannot bind
Find out which process uses the UDP port 161 and unbind this port. After freeing up UDP port 161, start deploying the SNMP module again.