[SNMP4J] some SNMP4j issues...

Frank Fock fock at agentpp.com
Wed Aug 27 23:58:24 CEST 2008


Hello Renato,

Are you sure that each session is closed only once?
The last error you reported (ConcurrentMofificationException)
suggests that.

The other errors/delays are caused by Java and
probably caused by heavy session (=UDP port)
creation and closing.
Changing the JRE (version) may help too.

Best regards,
Frank


Renato Araújo Ferreira wrote:
> Hello all,
> 
> I´m trying to use snmp4j in my application. It worked fine for single 
> threaded application, but I found some problems in a multithreaded 
> environment.
> 
> Each thread has your own session initialized with:
> 
>    TransportMapping transporteUDP = new DefaultUdpTransportMapping();
>    this.sessaoSNMP = new Snmp(transporteUDP);
>    this.sessaoSNMP.listen();
> 
> And closed with:
> 
>    this.sessaoSNMP.close();
> 
> These sessions are reused in all thread's life cycle only changing their 
> CommunityTarget and UserTarget. But, at end of process, one last target 
> (randomly, not the same) always wait too many time, between 250 and 300 
> seconds, in method org.snmp4j.Snmp.get with this stack:
> 
>    "DefaultUDPTransportMapping_1.1.0.160/0" daemon prio=1 tid=0x086b8070 
> nid=0x7c51 runnable [0x8b948000..0x8b948ec0]
>            at java.net.PlainDatagramSocketImpl.receive0(Native Method)
>            at 
> java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)
>            - locked <0x926b9918> (a java.net.PlainDatagramSocketImpl)
>            at java.net.DatagramSocket.receive(DatagramSocket.java:712)
>            - locked <0xb1b6d400> (a java.net.DatagramPacket)
>            - locked <0x926bacd0> (a java.net.DatagramSocket)
>            at 
> org.snmp4j.transport.DefaultUdpTransportMapping$ListenThread.run(Unknown 
> Source)
>            at java.lang.Thread.run(Thread.java:595)
>            at 
> org.snmp4j.util.DefaultThreadFactory$WorkerThread.run(Unknown Source)
> 
>    "Coletando: public at 00-18-F3-C7-71-05" daemon prio=1 tid=0x086244d8 
> nid=0x7c38 in Object.wait() [0x8c76a000..0x8c76ae40]
>            at java.lang.Object.wait(Native Method)
>            - waiting on <0x92ae9730> (a 
> org.snmp4j.Snmp$SyncResponseListener)
>            at java.lang.Object.wait(Object.java:474)
>            at org.snmp4j.Snmp.send(Unknown Source)
>            - locked <0x92ae9730> (a org.snmp4j.Snmp$SyncResponseListener)
>            at org.snmp4j.Snmp.send(Unknown Source)
>            at org.snmp4j.Snmp.get(Unknown Source)
>            ...
> 
> Sometimes I'm getting a "IllegalArgumentException: port out of 
> range:555555" error with this stack:
> 
>    java.lang.IllegalArgumentException: port out of range:555555
>            at java.net.InetSocketAddress.<init>(InetSocketAddress.java:83)
>            at 
> org.snmp4j.transport.DefaultUdpTransportMapping.sendMessage(Unknown Source)
>            at org.snmp4j.MessageDispatcherImpl.sendMessage(Unknown Source)
>            at org.snmp4j.MessageDispatcherImpl.sendPdu(Unknown Source)
>            at org.snmp4j.Snmp.sendMessage(Unknown Source)
>            at org.snmp4j.Snmp$PendingRequest.run(Unknown Source)
>            at java.util.TimerThread.mainLoop(Timer.java:512)
>            at java.util.TimerThread.run(Timer.java:462)
> 
> And, finally, sometimes I'm getting a "ConcurrentModificationException" 
> error using a iterator (method Iterator.next()) at end of process, when 
> all the SNMP communications are already finished. This code was already 
> there before I'm using SNMP4j and, as I found some information about 
> bugs like this in the web, I think so that could be something with my 
> implementation of SNMP4j.
> 
> OMG, a large email, but could someone help me??
> 
> Thankss....
> 
> Renato A. Ferreira
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> http://lists.agentpp.org/mailman/listinfo/snmp4j

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




More information about the SNMP4J mailing list