Snmp similar Engine ID issue
dp dp <dpdp@...
2008-11-04 19:30:21 GMT
I have a scenario where I need to communicate with 3 switches simultaneously using Snmp. the engine id on two
of the switches is the same.
As mentioned in the javadocs of Snmp class in Snmp4j java docs, all the steps have been followed. Everything
works properly too and I am able to communcate with each switch opening sessions to them simultaneously
and fetching data. I have three Snmp objects at the same time.
Now the problem arises when I reboot only one of the switches(a switch that shares the Snmp Engine ID with
another one). At this point of time, I always get a timeout error a Warn message on
DefaultUDPTransportMapping class. When I change the engine id's of each of the switches to unique
values, everything works fine all over again -> no matter which switch I reboot and this is exactly what I
want. But the only hitch is that I need the Snmp Engine ID for two switches to be the same.
My question is -> Does Snmp4j maintain any mapping between the Snmp Engine IDs? I see there are three engine
ids mentioned in the USM classes localEngineID, authorizationEngineID and just an engineID. Of what
significance are these? I read in one of the forum answers that one has to specify unique engine ids to avoid
the timeout window issue. If this was the case, how come the similar engine id's fetched data from all 3
switches for the first time? (I see the problem only after I reboot a single switch). So is it to do with a
reboot count and SnmpEngine ID combination.
I will be debugging the Snmp4j classes, in the meantime any pointers as to why this might have happened or any
inputs on which classes I should be mainly looking at will help. Please also let me know how Snmp4j uses the
Engine reboots and Engine IDs internally in brief for a better understanding. Will I be able to fetch data
from different switch where some share the same engine id, even though this is against what is being
mentioned by v3, yet will Snmp4J APIs support such a requirement? If so, where am I going wrong?