Author: azeez Date: Mon Jan 14 13:15:38 2008 New Revision: 611937 URL: http://svn.apache.org/viewvc?rev=611937&view=rev Log: The cleanup thread should not take up too much time, and should be a low priority thread
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java?rev=611937&r1=611936&r2=611937&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java Mon Jan 14 13:15:38 2008 @@ -37,7 +37,7 @@ /** * The time a message lives in the receivedMessages Map */ - private static final int TIMEOUT = 60 * 1000; + private static final int TIMEOUT = 5 * 60 * 1000; public AtMostOnceInterceptor() { Thread cleanupThread = new Thread(new MessageCleanupTask()); @@ -67,6 +67,7 @@ } try { List toBeRemoved = new ArrayList(); + Thread.yield(); synchronized (receivedMessages) { for (Iterator iterator = receivedMessages.keySet().iterator(); iterator.hasNext();) { @@ -74,17 +75,16 @@ long arrivalTime = ((Long) receivedMessages.get(msg)).longValue(); if (System.currentTimeMillis() - arrivalTime >= TIMEOUT) { toBeRemoved.add(msg); + if(toBeRemoved.size() > 10000){ // Do not allow this thread to run for too long + break; + } } } - long start = System.currentTimeMillis(); for (Iterator iterator = toBeRemoved.iterator(); iterator.hasNext();) { ChannelMessage msg = (ChannelMessage) iterator.next(); receivedMessages.remove(msg); if (log.isDebugEnabled()) { log.debug("Cleaned up message "); - } - if(System.currentTimeMillis() - start > 30000){ - break; } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]