You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2011/12/02 16:47:36 UTC

svn commit: r1209544 - in /activemq/activemq-apollo/trunk: apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/protocol/ apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/ apollo-openwire/src/test/scala/org/apache/activemq/a...

Author: chirino
Date: Fri Dec  2 15:47:36 2011
New Revision: 1209544

URL: http://svn.apache.org/viewvc?rev=1209544&view=rev
Log:
Fixes APLO-93 : Support initial read/write interval in heartbeat monitor

Patch provided by Stan Lewis.  Thanks!

Modified:
    activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/protocol/HeartBeatMonitor.scala
    activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/OpenwireProtocolHandler.scala
    activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/OpenwireTestSupport.scala

Modified: activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/protocol/HeartBeatMonitor.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/protocol/HeartBeatMonitor.scala?rev=1209544&r1=1209543&r2=1209544&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/protocol/HeartBeatMonitor.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/protocol/HeartBeatMonitor.scala Fri Dec  2 15:47:36 2011
@@ -29,6 +29,8 @@ import java.util.concurrent.TimeUnit
 class HeartBeatMonitor() {
 
   var transport:Transport = _
+  var initial_write_check_delay = 0L
+  var initial_read_check_delay = 0L
   var write_interval = 0L
   var read_interval = 0L
 
@@ -64,10 +66,22 @@ class HeartBeatMonitor() {
   def start = {
     session += 1
     if( write_interval!=0 ) {
-      schedual_check_writes(session)
+      if ( initial_write_check_delay!=0 ) {
+        transport.getDispatchQueue.after(initial_write_check_delay, TimeUnit.MILLISECONDS) {
+          schedual_check_writes(session)
+        }
+      } else {
+        schedual_check_writes(session)
+      }
     }
     if( read_interval!=0 ) {
-      schedual_check_reads(session)
+      if ( initial_read_check_delay!=0 ) {
+        transport.getDispatchQueue.after(initial_read_check_delay, TimeUnit.MILLISECONDS) {
+          schedual_check_reads(session)
+        }
+      } else {
+        schedual_check_reads(session)
+      }
     }
   }
 

Modified: activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/OpenwireProtocolHandler.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/OpenwireProtocolHandler.scala?rev=1209544&r1=1209543&r2=1209544&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/OpenwireProtocolHandler.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-openwire/src/main/scala/org/apache/activemq/apollo/openwire/OpenwireProtocolHandler.scala Fri Dec  2 15:47:36 2011
@@ -387,10 +387,6 @@ class OpenwireProtocolHandler extends Pr
     val inactive_time = preferred_wireformat_settings.getMaxInactivityDuration().min(info.getMaxInactivityDuration())
     val initial_delay = preferred_wireformat_settings.getMaxInactivityDurationInitalDelay().min(info.getMaxInactivityDurationInitalDelay())
 
-    if (initial_delay != inactive_time) {
-      die("We only support an initial delay inactivity duration equal to the max inactivity duration")
-    }
-
     if (inactive_time > 0) {
       heart_beat_monitor.read_interval = inactive_time
       // lets be a little forgiving to account to packet transmission latency.
@@ -408,6 +404,9 @@ class OpenwireProtocolHandler extends Pr
       }
     }
 
+    heart_beat_monitor.initial_read_check_delay = initial_delay
+    heart_beat_monitor.initial_write_check_delay = initial_delay
+
     heart_beat_monitor.transport = connection.transport
     heart_beat_monitor.start
 

Modified: activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/OpenwireTestSupport.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/OpenwireTestSupport.scala?rev=1209544&r1=1209543&r2=1209544&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/OpenwireTestSupport.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/OpenwireTestSupport.scala Fri Dec  2 15:47:36 2011
@@ -35,7 +35,7 @@ class OpenwireTestSupport extends FunSui
   val broker_config_uri = "xml:classpath:apollo-openwire.xml"
   val transport_scheme = "tcp"
   val transport_host = "localhost"
-  val uri_options = "?wireFormat.maxInactivityDuration=1000000&wireFormat.maxInactivityDurationInitalDelay=1000000"
+  val uri_options = ""//"?wireFormat.maxInactivityDuration=1000000&wireFormat.maxInactivityDurationInitalDelay=1000000"
 
   override protected def beforeAll() {
     info("Loading broker configuration from the classpath with URI: " + broker_config_uri)