Hi Mathew, There is nothing to close or free when using TreeUtils (except probably the TreeUtils instance itself). It does not create any threads and does not hold any collections of internal data.
I suspect, that "next(e)" is the problem source... Best regards, Frank Mathew Rowley wrote:
When profiling an application which has a set of threads that use TreeUtils to SNMP walk. No matter how many threads I use, I eventually get the following OOM exception: java.lang.OutOfMemoryError: Java heap space Exception in thread "DefaultUDPTransportMapping_192.168.0.10/0" java.lang.OutOfMemoryError: Java heap space Is there something I need to explicitly define in the TreeListener to close the thread when the walk has completed (besides notify())? Or is there something I need to do to clear the thread out of memory when its finished executing? It seems like the Object that is not being destroyed is: java.util.TreeMap$Entry This is what I currently have any help would be appreciated. Thanks. public void finished(TreeEvent e) { if ((e.getVariableBindings() != null) && (e.getVariableBindings().length > 0)) { next(e); }if (e.isError()) {this.collector.increaseTotalCmtsErrors(); logger.error(new StringBuffer("There was an error during SNMP walk (").append(host).append("): ").append(e.getErrorMessage()).toString()); }// Let the collector know the thread has finished, and increase thetotal counter collector.increaseTotalCmtsFinished(); collector.getFreeThreadsQueue().add(new Integer(threadIndex));// Show the thread has finishedsynchronized(this) { this.notify(); } } public boolean next(TreeEvent e) { String mac = getVariable(e);logger.debug(new StringBuffer("Adding to queue: ").append(mac));this.collector.addMac(mac);return true;}
-- 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
