[SNMP4J] Problem with SNMP4j

Frank Fock fock at agentpp.com
Thu Sep 6 21:15:08 CEST 2012


Hi,

What version of SNMP4J are you using?
Why are you creating a Snmp instance and Transport for each
method call? (Opening a socket is slow and closing it might not
work instantly on all systems, thus this approach is not recommended)

Best regards,
Frank

Am 06.09.2012 13:45, schrieb MILLIGAN, Kristoffer:
> Hello list,
>
> snmp4j is for the most part working as expected .. I am however having a problem with a method of mine.
>
> The method will leave a DefaultUdpTransportMapping listerner running, and it will leave a Timer running. These never seem to die. What am I doing wrong, and how can I kill of these listeners?
>
> public ArrayList<String> getValues(String oid) throws IOException {
>          
>          ArrayList<String> result = new ArrayList<String>();
>          
>          TransportMapping transport = new DefaultUdpTransportMapping();
>          //transport.listen();
>
>          // Create Target Address object
>          CommunityTarget comtarget = new CommunityTarget();
>          comtarget.setCommunity(new OctetString(Setting.getInstance().getValue("settings", "community")));
>          comtarget.setVersion(SnmpConstants.version2c);
>          comtarget.setAddress(new UdpAddress(Setting.getInstance().getValue("settings", "ip") + "/" + Setting.getInstance().getValue("settings", "port")));
>          comtarget.setRetries(2);
>          comtarget.setTimeout(5000);
>
>          // Create the PDU object
>          PDU pdu = new PDU();
>          pdu.add(new VariableBinding(new OID(oid)));
>          pdu.setType(PDU.GET);
>          //pdu.setRequestID(new Integer32(1));
>
>          // Create Snmp object for sending data to Agent
>          Snmp snmp = new Snmp(transport);
>          snmp.listen();
>          ResponseEvent response;
>          while(true) {
>              response = snmp.getNext(pdu, comtarget);
>              if (response != null) {
>                  PDU responsePDU = response.getResponse();
>                  if(!response.getResponse().get(0).getOid().startsWith(new OID(oid))) {
>                      //System.out.println("Starting with the same OID - breaking!");
>                      break;
>                  }
>                  if (responsePDU != null) {
>                      int errorStatus = responsePDU.getErrorStatus();
>                      if (errorStatus == PDU.noError){
>                          result.add(responsePDU.get(0).toValueString());
>                          pdu = response.getResponse();
>                          System.out.println("Adding " + responsePDU.get(0).toValueString());
>                      }
>                      else {
>                          System.out.println("Response was error: " + pdu.getErrorStatusText());
>                          break;
>                      }
>                  } else {
>                      System.out.println("PDU received was null");
>                      break;
>                  }
>              } else {
>                  System.out.println("Response received was null");
>                  break;
>              }
>          }
>          snmp.close();
>
>          return result;
>      }
>
>
> This message and any attachments are confidential to Vizada and intended solely for
> the individual(s) or entity to which it is addressed. If you are not the intended recipient,
> do not read, copy or distribute the email or any attachments. Please notify the sender
> immediately by return e-mail.
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> http://lists.agentpp.org/mailman/listinfo/snmp4j

-- 
---
AGENT++
Maximilian-Kolbe-Str. 10
73257 Koengen, Germany
https://agentpp.com
Phone: +49 7024 8688230
Fax:   +49 7024 8688231




More information about the SNMP4J mailing list