Hi Tjip,

Whether A) (ignore the exception) works is
definitely depending on the JDK implementation.

B) should work when you call close() and then
listen() on the DefaultUDPTransportMapping
instance. The small gap where there exists
no socket could cause a NPE too, of course.

I will think about a clean solution to such
problems for the next release...

Best regards,
Frank

Tjip Pasma wrote:
Hi
I was building a small snmp test application this friday when i stumpled into this problem. Part of my application is to run a snmp discovery, this was working just fine until i changed the ip range that the discovery should run within.
Suddenly nothing was working anymore. Using wireshark i discovered that i only 
was sending to one ip address withinin the range.
I enabled the snmp4j logging features and notiched this:
 Socket for transport mapping 
org.snmp4j.transport.defaultudptransportmapping$listenthr...@17431b9 error: 
socket closed
This exception was thrown from the socket.receive() call. This explained why all further communication was stopped, but i was still clueless to the reason for the exception, until i notiched the icmp message "Time-to-live exceeded" in wireshark (from now on im using "udp port 161 or icmp" as wireshark filter :-). This "Time-to-live exceeded" is in this case triggered by a router loop misconfiguration in my network, but i would prefer to be robust to this case. (discovery features is part of our main applications, and router misconfiguration may also happen in a production setup). So far i can only see 2 solutions to this. A) Ignore this exception Currently the flag "stop" is set to true when this exception is thrown, this causes the listening thread to be shut down and the socket to be closed. I did a few test with this and appearently the socket keeps on running, despite that the exception message is "socket closed". This solution worries me since the socket state may be corrupt ? B) start new socket.
As i see it, this would be a larger rewrite of this class, requiering some 
blocking mechanism while the socket is being replaced.
Can anyone help with other suggestions to solve this ?
Best Regards

Tjip Pasma
System Engineer

Ericsson Danmark A/S

Fælledvej 17 7600 Struer

Denmark
www.ericsson.com

Office: +45 97 86 92 45 Mobile: +45 51 16 71 91
      Fax: +45 33 88 31 21
[email protected] <mailto:[email protected]>
This communication is confidential and intended solely for the addressee(s). 
Any unauthorized review, use, disclosure or distribution is prohibited. If you 
believe this message has been sent to you in error, please notify the sender by 
replying to this transmission and delete the message without disclosing it. 
Thank you.

E-mail including attachments is susceptible to data corruption, interception, 
unauthorized amendment, tampering and viruses, and we only send and receive 
emails on the basis that we are not liable for any such corruption, 
interception, amendment, tampering or viruses or any consequences thereof.
_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j

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

_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j

Reply via email to