[SNMP4J] Help needed for SNMP over TCP

Frank Fock fock at agentpp.com
Wed Mar 4 18:28:11 CET 2009


Hi,

You will not get any response on
a trap independently of using
UDP or TCP. Your code itself
will always throw a NullPointerException
here:

 >    if (response != null) {
 >     System.out.println("GOT"+response.getError());
 >     System.out.println("GOT"+response.getResponse().getRequestID());

response.getResponse() will always return 'null'
when sending a trap/notification.

 >     System.out.println("GOT"+response.getError());
 >    }

Best regards,
Frank

bang bang wrote:
> I am trying to send out the SNMP V2c trap using SNMP4J. The code which is
> trying to do the same is given below. The same code is working fine for UDP
> but returns null response for TCP. Can someone please help me to find the
> missing point here?
> 
> Thanks in advance.
> CB
> 
> package com.test;
> import java.net.InetAddress;
> import java.util.ArrayList;
> import org.snmp4j.CommunityTarget;
> import org.snmp4j.PDU;
> import org.snmp4j.PDUv1;
> import org.snmp4j.Snmp;
> import org.snmp4j.Target;
> import org.snmp4j.TransportMapping;
> import org.snmp4j.event.ResponseEvent;
> import org.snmp4j.mp.SnmpConstants;
> import org.snmp4j.smi.Address;
> import org.snmp4j.smi.Integer32;
> import org.snmp4j.smi.OID;
> import org.snmp4j.smi.OctetString;
> import org.snmp4j.smi.TcpAddress;
> import org.snmp4j.smi.TimeTicks;
> import org.snmp4j.smi.TransportIpAddress;
> import org.snmp4j.smi.UdpAddress;
> import org.snmp4j.smi.VariableBinding;
> import org.snmp4j.transport.DefaultTcpTransportMapping;
> import org.snmp4j.transport.DefaultUdpTransportMapping;
> public class SNMP4J {
>  private static boolean isTcp = true;
>  public static void main(String[] args) {
>   try {
>    TransportMapping transport = null;
>    if (isTcp) {
>     transport = new DefaultTcpTransportMapping();
>    } else {
>     transport = new DefaultUdpTransportMapping();
>    }
>    Snmp snmp = new Snmp(transport);
>    transport.listen();
>    System.out.println("Sending PDU");
>    ResponseEvent response = snmp.send(getPDU(), getTarget());
>    System.out.println("PDU sent");
>    if (response != null) {
>     System.out.println("GOT"+response.getError());
>     System.out.println("GOT"+response.getResponse().getRequestID());
>     System.out.println("GOT"+response.getError());
>    }
>   } catch (Exception exp) {
>    System.out.println("Exception sending message"+exp);
>   } catch (Error err) {
>    System.out.println("Error sending message");
>   }
>  }
>  private static PDU getPDU() throws Exception {
>   VariableBinding var;
>   PDUv1 pdu = new PDUv1();
>   pdu.setType(PDU.TRAP);
>   try {
> 
>    var = new VariableBinding();
>    var.setOid(new OID("1.3.6.1.4.1"));
>    var.setVariable(new TimeTicks(12222L));
>    pdu.add(var);
>    var = new VariableBinding();
>    var.setOid(new OID("1.3.6.1.4.1"));
>    var.setVariable(new Integer32(99));
>    pdu.add(var);
> 
>   } catch (Exception p) {
>    p.printStackTrace();
>   }
>   return pdu;
>  }
>  private static Target getTarget() throws Exception {
>   TransportIpAddress targetAddress = null;
>   if (isTcp) {
>    targetAddress = new TcpAddress(InetAddress.getByName("115.0.0.44"),162);
>   } else {
>    targetAddress = new UdpAddress(InetAddress.getByName("115.0.0.44"),162);
>   }
>   CommunityTarget target = new CommunityTarget();
>   target.setCommunity(new OctetString("public"));
>   target.setAddress(targetAddress);
>   target.setVersion(SnmpConstants.version2c);
>   target.setTimeout(500L);
>   target.setRetries(3);
>   return target;
>  }
> 
>  private void log() {
> 
>  }
> }
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> http://lists.agentpp.org/mailman/listinfo/snmp4j

-- 
AGENT++
http://www.agentpp.com
http://www.mibexplorer.com
http://www.mibdesigner.com




More information about the SNMP4J mailing list