diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2002-08-13 20:52:42 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2002-08-13 20:52:42 +0000 |
commit | 1b3cf102cadc385be504041b73f7e0d483f0b51a (patch) | |
tree | 192061663425db1ae3c26bfd06f24c0e06691e09 | |
parent | 7bb33b5b1a303ef59d25dcb5e96ed28c0555d475 (diff) | |
download | ATCD-1b3cf102cadc385be504041b73f7e0d483f0b51a.tar.gz |
ChangeLogTag:Tue Aug 13 13:52:15 2002 Ossama Othman <ossama@uci.edu>
-rw-r--r-- | TAO/ChangeLog | 27 | ||||
-rw-r--r-- | TAO/orbsvcs/LoadBalancer/LoadManager.cpp | 16 | ||||
-rw-r--r-- | TAO/orbsvcs/LoadBalancer/LoadMonitor.cpp | 10 | ||||
-rw-r--r-- | TAO/orbsvcs/LoadBalancer/Push_Handler.cpp | 7 |
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); |