[jboss-svn-commits] JBL Code SVN: r10478 - labs/jbossesb/branches/JBESB_4_0_MP1/product/core/listeners/src/org/jboss/soa/esb/listeners/message.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 23 11:44:06 EDT 2007
Author: kevin.conner at jboss.com
Date: 2007-03-23 11:44:05 -0400 (Fri, 23 Mar 2007)
New Revision: 10478
Modified:
labs/jbossesb/branches/JBESB_4_0_MP1/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
Log:
Added backoff mechanism
Modified: labs/jbossesb/branches/JBESB_4_0_MP1/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_0_MP1/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java 2007-03-23 15:28:09 UTC (rev 10477)
+++ labs/jbossesb/branches/JBESB_4_0_MP1/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java 2007-03-23 15:44:05 UTC (rev 10478)
@@ -64,12 +64,27 @@
* serial version uid for this class
*/
private static final long serialVersionUID = -9198018611828254359L;
+
/**
+ * The minimum error delay.
+ */
+ private static final long MIN_ERROR_DELAY = 1000 ;
+ /**
+ * The maximum error delay.
+ */
+ private static final long MAX_ERROR_DELAY = (MIN_ERROR_DELAY << 5) ;
+
+ /**
* The action pipeline.
*/
private ActionProcessingPipeline pipeline ;
/**
+ * The error delay.
+ */
+ private long errorDelay ;
+
+ /**
* public constructor
*
* @param config
@@ -253,6 +268,7 @@
{
message = (maxWaitMillis > 0) ? _pickUpCourier
.pickup(maxWaitMillis) : null;
+ errorDelay = 0 ;
}
catch (CourierTimeoutException e)
{
@@ -261,6 +277,22 @@
catch (CourierException e)
{
_logger.error("Courier Exception", e);
+ try
+ {
+ if (errorDelay == 0)
+ {
+ errorDelay = MIN_ERROR_DELAY ;
+ }
+ else if (errorDelay < MAX_ERROR_DELAY)
+ {
+ errorDelay <<= 1 ;
+ }
+ Thread.sleep(errorDelay) ;
+ }
+ catch (final InterruptedException ie)
+ {
+ Thread.currentThread().interrupt() ;
+ }
return;
}
More information about the jboss-svn-commits
mailing list