summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2002-08-13 20:52:42 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2002-08-13 20:52:42 +0000
commit1b3cf102cadc385be504041b73f7e0d483f0b51a (patch)
tree192061663425db1ae3c26bfd06f24c0e06691e09
parent7bb33b5b1a303ef59d25dcb5e96ed28c0555d475 (diff)
downloadATCD-1b3cf102cadc385be504041b73f7e0d483f0b51a.tar.gz
ChangeLogTag:Tue Aug 13 13:52:15 2002 Ossama Othman <ossama@uci.edu>
-rw-r--r--TAO/ChangeLog27
-rw-r--r--TAO/orbsvcs/LoadBalancer/LoadManager.cpp16
-rw-r--r--TAO/orbsvcs/LoadBalancer/LoadMonitor.cpp10
-rw-r--r--TAO/orbsvcs/LoadBalancer/Push_Handler.cpp7
4 files changed, 51 insertions, 9 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 7dec70ee676..4f595a17d23 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,30 @@
+Tue Aug 13 13:52:15 2002 Ossama Othman <ossama@uci.edu>
+
+ * orbsvcs/LoadBalancer/LoadManager.cpp (ACE_TMAIN):
+
+ Changed default load balancing strategy to "Random." The
+ previous default, "RoundRobin," is currently unimplemented.
+
+ Corrected type of value inserted into
+ "omg.org.CosLoadBalancing.Strategy" property. The correct type
+ is CosLoadBalancing::StrategyInfo, not a string.
+
+ * orbsvcs/LoadBalancer/LoadMonitor.cpp (register_load_monitor):
+
+ Missing check for zero return from strcasecmp() caused the
+ "PULL" load monitoring style to always be used. Added missing
+ zero check. Both "PUSH" and "PULL" load monitoring styles work
+ now.
+
+ (ACE_TMAIN):
+
+ Corrected problem where the "push handler" timer was cancelled
+ before the Reactor's event loop ever started.
+
+ * orbsvcs/LoadBalancer/Push_Handler.cpp (handle_timeout):
+
+ Added some debugging code.
+
Tue Aug 13 11:25:23 2002 Ossama Othman <ossama@uci.edu>
* orbsvcs/LoadBalancer/Push_Handler.h:
diff --git a/TAO/orbsvcs/LoadBalancer/LoadManager.cpp b/TAO/orbsvcs/LoadBalancer/LoadManager.cpp
index be00f85fc42..46ea37538d9 100644
--- a/TAO/orbsvcs/LoadBalancer/LoadManager.cpp
+++ b/TAO/orbsvcs/LoadBalancer/LoadManager.cpp
@@ -105,7 +105,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// 0 = RoundRobin
// 1 = Random
// 2 = LeastLoaded
- int default_strategy = 0;
+ int default_strategy = 1;
// Check the non-ORB arguments.
::parse_args (argc,
@@ -139,16 +139,18 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
props[0].nam[0].id =
CORBA::string_dup ("org.omg.CosLoadBalancing.Strategy");
+ CosLoadBalancing::StrategyInfo strategy_info;
+
switch (default_strategy)
{
case 0:
- props[0].val <<= "RoundRobin";
+ strategy_info.name = CORBA::string_dup ("RoundRobin");
break;
case 1:
- props[0].val <<= "Random";
+ strategy_info.name = CORBA::string_dup ("Random");
break;
case 2:
- props[0].val <<= "LeastLoaded";
+ strategy_info.name = CORBA::string_dup ("LeastLoaded");
break;
default:
ACE_ERROR_RETURN ((LM_ERROR,
@@ -157,6 +159,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
-1);
}
+ props[0].val <<= strategy_info;
+
lm->set_default_properties (props
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
@@ -180,6 +184,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
}
+// ACE_CATCH (PortableGroup::InvalidProperty, ex)
+// {
+// ACE_DEBUG ((LM_DEBUG, "Property ----> %s\n", ex.nam[0].id.in ()));
+// }
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
diff --git a/TAO/orbsvcs/LoadBalancer/LoadMonitor.cpp b/TAO/orbsvcs/LoadBalancer/LoadMonitor.cpp
index a0f76813aaf..c76e4e3280c 100644
--- a/TAO/orbsvcs/LoadBalancer/LoadMonitor.cpp
+++ b/TAO/orbsvcs/LoadBalancer/LoadMonitor.cpp
@@ -189,14 +189,14 @@ register_load_monitor (CosLoadBalancing::LoadManager_ptr manager,
monitor->the_location (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
- if (ACE_OS::strcasecmp (::mstyle, "PULL"))
+ if (ACE_OS::strcasecmp (::mstyle, "PULL") == 0)
{
manager->register_load_monitor (monitor,
location.in ()
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
- else if (ACE_OS::strcasecmp (::mstyle, "PUSH"))
+ else if (ACE_OS::strcasecmp (::mstyle, "PUSH") == 0)
{
ACE_Time_Value interval (::push_interval, 0);
ACE_Time_Value restart (::push_interval, 0);
@@ -284,6 +284,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
+ orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
if (timer_id != -1 && reactor->cancel_timer (timer_id) == 0)
{
ACE_ERROR ((LM_ERROR,
@@ -293,9 +296,6 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Just keep going. We're shutting down anyway.
}
- orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
}
diff --git a/TAO/orbsvcs/LoadBalancer/Push_Handler.cpp b/TAO/orbsvcs/LoadBalancer/Push_Handler.cpp
index e6d29af0986..de2f9ef1f51 100644
--- a/TAO/orbsvcs/LoadBalancer/Push_Handler.cpp
+++ b/TAO/orbsvcs/LoadBalancer/Push_Handler.cpp
@@ -30,6 +30,13 @@ TAO_LB_Push_Handler::handle_timeout (
this->monitor_->loads (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+// ACE_DEBUG ((LM_DEBUG,
+// "PUSHING LOAD:\n"
+// " id: %u\n"
+// " value: %f\n",
+// loads[0].id,
+// loads[0].value));
+
this->manager_->push_loads (this->location_,
loads.in ()
ACE_ENV_ARG_PARAMETER);