2015-10-23 1 views
0

J'ai mis en œuvre simples traps SNMP Collector avec le CommandResponder suivant:politique nouvelle tentative de SNMP4J

new CommandResponder() { 

    @Override 
    public void processPdu(CommandResponderEvent event) { 
     PDU pdu = event.getPDU(); 
     Trap receivedTrap = snmpHelper.toTrap(pdu); 
     trapStorage.offer(receivedTrap); 
    } 
}; 

Lorsque j'envoie des pièges au collecteur avec les Target paramètres suivants dans l'expéditeur:

target.setRetries(2); 
target.setTimeout(500); 

SNMP Collector reçoit le piège 3 fois. Pourquoi? Dois-je envoyer une réponse à l'expéditeur du collecteur afin d'éviter que le piège ne soit renvoyé?

Répondre

1

Il existe trois types de notifications SNMP (par types de PDU):

  • Trapv1
  • Trapv2 (depuis SNMPv2)
  • InForm (depuis SNMPv2)

Le gros problème avec TRAPs signifie qu'ils ne sont pas reconnus, de sorte que l'agent SNMP ne sait pas réellement si le gestionnaire SNMP l'a reçu. Les PDU SNMPv2 ont corrigé ceci en introduisant la notion d'INFORM, qui n'est rien de plus qu'un TRAP reconnu. Donc, je crois que l'agent que vous traitez envoie le même piège trois fois pour s'assurer qu'il est livré. Pour éviter ce problème, vous devriez envisager d'utiliser INFORMs si l'agent les prend en charge. Il est également possible qu'il existe une sorte d'option de configuration du côté agent/périphérique qui vous permettra de désactiver ce comportement.