[SNMP4J] Acknowledgements of informs not retrieved

George Vasilakis george.vasilakis at gmail.com
Wed Dec 21 10:19:11 CET 2011


Hi Frank.

Thanks for your quick answer.
You are right, now it seems to work fine.

I have read the faq and the examples obviously (else I wouldn't be able 
to write the code) and in fact on my first try I was calling 
snmp.listen() on the sender, but did not call 
snmp.addNotificationListener() on the receiver. Instead I was calling 
snmp.addCommandResponder() and tried to send the acknowledgement 
manually which did not work for me.

Anyway, thanks again.

Regards,
George

On 20/12/2011 6:16 μμ, Frank Fock wrote:
> Hi,
>
> You can find the answer in the FAQ.
> On sender site you forgot to call snmp.listen();
> Without listening for incoming messages you cannot
> receive them.
>
> Best regards,
> Frank
>
> Am 20.12.2011 16:22, schrieb George Vasilakis:
>> Hi all.
>>
>> I am trying to send v2 informs and successfully retrieve the
>> acknowledgements.
>> I am using the following code for the receiver and the sender respectively.
>>
>> Receiver:
>>              threadPool = ThreadPool.create("Trap", 2);
>>              dispatcher = new MultiThreadedMessageDispatcher(threadPool,
>> new MessageDispatcherImpl());
>>              listenAddress =
>> GenericAddress.parse(System.getProperty("snmp4j.listenAddress",
>> TRAP_LISTENER_UDP_ADDRESS));
>>              snmp = new Snmp(dispatcher, new DefaultUdpTransportMapping());
>>              snmp.addNotificationListener(listenAddress, this);
>>              snmp.getMessageDispatcher().addMessageProcessingModel(new
>> MPv1());
>>              snmp.getMessageDispatcher().addMessageProcessingModel(new
>> MPv2c());
>>              snmp.listen();
>>
>> Sender:
>>            TransportMapping transport = new DefaultUdpTransportMapping();
>>            Snmp snmp = new Snmp(transport);
>>            CommunityTarget target = new CommunityTarget();
>>            target.setCommunity(this.communityString);
>>            target.setAddress(TRAP_LISTENER_UDP_ADDRESS);
>>            target.setRetries(1);
>>            target.setTimeout(1500);
>>            target.setMaxSizeRequestPDU(65535);
>>            target.setVersion(SnmpConstants.version2c);
>>
>>               PDU pdu = new PDU();
>>               pdu.setType(PDU.INFORM);
>>               List<VariableBinding>   bindings = trap.getBindings();
>>                sysUpTime = (System.currentTimeMillis() - this.startTime) / 10;
>>                pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new
>> TimeTicks(sysUpTime)));
>>                pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID,
>> trapOid));
>>
>>                for(VariableBinding binding : bindings) {
>>                    pdu.add(binding);
>>                }
>>                ResponseEvent evt = snmp.inform(pdu, target);
>>                if(evt == null || evt.getResponse() == null) {
>>                    System.err.println("Notification lost");
>>                }
>>                else {
>>                    System.out.println("Response: " + evt.getResponse());
>>                }
>>
>>            snmp.close();
>>
>> The informs are successfully received on the receiver but no
>> acknowledgment is sent back to the sender (or at least none is
>> successfully retrieved by the sender). What am I doing wrong?
>>
>> Frankly, I am desperate and any help would be greatly appreciated.
>> Thanks in advance.
>>
>> George
>> _______________________________________________
>> SNMP4J mailing list
>> SNMP4J at agentpp.org
>> http://lists.agentpp.org/mailman/listinfo/snmp4j




More information about the SNMP4J mailing list