[SNMP4J] Async Request Timeout Not Reported

Rehan Azher rehan.azher at gmail.com
Thu Sep 16 11:33:55 CEST 2010


Hi Folks,

I am not an  Java expert and nor  SNMP Expert.  While having some
programming/scripting experience in other layman languages like VB, PERL ,
PHP I tried following code:

                        /* Initialize some basic stuff */
ResponseListener listener = new ResponseListener() {
    public void onResponse(ResponseEvent event) {
         ((Snmp)event.getSource()).cancel(event.getRequest(), this);
        PDU response = event.getResponse();
        PDU request = event.getRequest();
        if (response == null) {
            System.err.println("Request "+request+" timed out");
        }
        else {
            System.out.println("Received response "+response+" on request
"+request);
            System.out.println("Address : "+event.getPeerAddress());
        }
    }
};
 SubnetUtils mySubnet = new SubnetUtils("100.2.33.0","255.255.255.0");
String[] myAddresses = mySubnet.getInfo().getAllAddresses();
 Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
for (int i =0;i<myAddresses.length;i++){
 InetAddress localhost = InetAddress.getByName(myAddresses[i]);
OctetString community = new OctetString("public");
 OctetString securityName = new OctetString("public");
OctetString authEngineId = new OctetString();
 CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
 Address address = new UdpAddress(localhost,
DEFAULT_COMMAND_RESPONDER_PORT);
target.setAddress(address);
 target.setVersion(SnmpConstants.version1);
PDU pdu = new PDU();
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.1"))); // sysDescr
 pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.2.1"))); // ifNumber
pdu.setType(PDU.GETNEXT);
 snmp.send(pdu, target, myAddresses[i], listener);
}
snmp.listen();

Following code is not related to SNMP4J , so just a description for same
here:

SubnetUtils mySubnet = new SubnetUtils("100.2.33.0","255.255.255.0");
String[] myAddresses = mySubnet.getInfo().getAllAddresses();

this will return all the valid host in the give subnet in an String Array.

Now the real problem, I do not get any response for the timed out requests.

Can someone help me on that


Thanks & Best Regards,


--
Rehan Azher



More information about the SNMP4J mailing list