diff options
author | wolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-04-15 16:07:57 +0000 |
---|---|---|
committer | wolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-04-15 16:07:57 +0000 |
commit | 0e9e1bf70d09009e40c3da748e798ac1a7cf8eac (patch) | |
tree | 2152a0ecc355d04a78288f9dabaa475be43e894d | |
parent | e743a80a1f39c3bec039e8a4fce759fc9c332cfe (diff) | |
download | ATCD-0e9e1bf70d09009e40c3da748e798ac1a7cf8eac.tar.gz |
ChangeLogTag: Wed Apr 15 15:58:24 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
13 files changed, 184 insertions, 68 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index 17313f32563..9c9d1d882d8 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,3 +1,37 @@ +Wed Apr 15 15:58:24 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> + + * DAnCE/tests/CIAO/FTComponents/FTClient.idl + * DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp + * DAnCE/tests/CIAO/FTComponents/FTClient_exec.h: + + Added attribute logstart to delay logging for a number of + invocations. + + * DAnCE/tests/CIAO/FTComponents/Worker.idl + * DAnCE/tests/CIAO/FTComponents/FTTask_exec.h + * DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp: + + Changed run_task return value, server shutdown behavior and + naming convention for ior file. + + * DAnCE/tests/CIAO/FTComponents/client_trigger.cpp: + + Added support for triggering several clients in one invocation. + + * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h + * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp: + + Changed logging output. + + * DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp: + + Changed shutdown behavior. + + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp: + + Changed logging behavior. + Tue Mar 17 17:45:13 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/Worker.idl diff --git a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp index 1d314b5523f..90a53fe4f9d 100644 --- a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp +++ b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp @@ -11,6 +11,7 @@ //============================================================================= #include "ace/High_Res_Timer.h" +#include "ace/Date_Time.h" #include "FaultCorrelationManager_Impl.h" #include "ciao/FTComponentServer/CIAO_PropertiesC.h" #include "DAnCE/Logger/Log_Macros.h" @@ -78,16 +79,33 @@ namespace DAnCE // add all logged proc_failure info to the log file std::ofstream out; out.open ("fou-shutdown.txt", ios_base::app); + ACE_Date_Time start, end; - for (SHUTDOWN_TIME_LIST::iterator it = history_.begin (); - it != history_.end (); - ++it) - { - out << it->second << " " << it->first << std::endl; - } + { + ACE_Guard <ACE_Thread_Mutex> guard (history_lock_); + + for (SHUTDOWN_TIME_LIST::iterator it = history_.begin (); + it != history_.end (); + ++it) + { + start.update (it->start_shutdown); + end.update (it->end_shutdown); + out << it->fou_id << " " + << start.hour () << ":" + << start.minute () << ":" + << start.second () << ":" + << start.microsec () << " " + << end.hour () << ":" + << end.minute () << ":" + << end.second () << ":" + << end.microsec () << " " + << it->shutdown << std::endl; + } + history_.clear (); + } + out.close (); - history_.clear (); } return 0; @@ -115,10 +133,12 @@ namespace DAnCE return; } - Deployment::Applications_var apps = dam->getApplications(); + ACE_Time_Value start (ACE_OS::gettimeofday ()); timer_.start (); + Deployment::Applications_var apps = dam->getApplications(); + for (size_t i = 0; i < apps->length(); ++i) { try @@ -152,7 +172,12 @@ namespace DAnCE ACE_Time_Value tv; timer_.elapsed_time (tv); - history_.push_back (TFouShutdownTime (tv.msec (), fou_id)); + TFouShutdownTime sample = {tv.msec (), start, ACE_OS::gettimeofday (), fou_id}; + + { + ACE_Guard <ACE_Thread_Mutex> guard (history_lock_); + history_.push_back (sample); + } } catch (const CORBA::Exception & ex) { @@ -170,6 +195,8 @@ namespace DAnCE { DANCE_DEBUG ((LM_TRACE, "FCM: app_failure ()\n")); + ACE_Time_Value tv = ACE_OS::gettimeofday (); + { ACE_Guard <ACE_Thread_Mutex> guard (app_failure_lock_); @@ -182,6 +209,13 @@ namespace DAnCE } new_notification_.signal (); + + TFouShutdownTime sample = {0, tv, ACE_Time_Value (), host}; + + { + ACE_Guard <ACE_Thread_Mutex> guard (history_lock_); + history_.push_back (sample); + } } void diff --git a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h index ce599ca05f4..4ebea005ec1 100644 --- a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h +++ b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h @@ -150,10 +150,18 @@ namespace DAnCE ACE_High_Res_Timer timer_; - typedef std::pair <unsigned long, std::string> TFouShutdownTime; + struct TFouShutdownTime { + unsigned long shutdown; + ACE_Time_Value start_shutdown; + ACE_Time_Value end_shutdown; + std::string fou_id; + }; + typedef std::list <TFouShutdownTime> SHUTDOWN_TIME_LIST; SHUTDOWN_TIME_LIST history_; + + ACE_Thread_Mutex history_lock_; }; } diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl index 92c08593835..9d34148944b 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl @@ -12,6 +12,7 @@ module DeCoRAM attribute double period; attribute double execution_time; attribute unsigned long iterations; + attribute unsigned long logstart; attribute string server_ior; attribute string name; }; diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp index bafe9c51f9b..2d77006a6c7 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp @@ -53,8 +53,8 @@ namespace CIDL_FTClient_Impl rt_current->the_priority (client_executor_->priority ()); */ - CIAO_DEBUG ((LM_TRACE, "s(%d) ", - count_)); + CIAO_DEBUG ((LM_EMERGENCY, "s(%s) ", + client_executor_->name ())); if (CORBA::is_nil (server_.in ())) { @@ -67,20 +67,23 @@ namespace CIDL_FTClient_Impl } } - CORBA::ULong server_processing_time; + ACE_Time_Value server_processing_time; timer_.start (); - server_processing_time = - server_->run_task (client_executor_->execution_time ()); + server_processing_time.msec ( + server_->run_task (client_executor_->execution_time ())); timer_.stop (); ACE_Time_Value rt; timer_.elapsed_time (rt); - if (logging_) - history_.push_back (rt.msec () - server_processing_time); + if (logging_ && (count_ >= client_executor_->logstart ())) + { + ResponseTimeMeasurement m = {server_processing_time, rt}; + history_.push_back (m); + } } catch (CORBA::Exception & ex) { @@ -128,7 +131,7 @@ namespace CIDL_FTClient_Impl it != history_.end (); ++it) { - out << *it << std::endl; + out << it->server_time.msec () << " " << it->client_time.msec () << std::endl; } out.close (); diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h index 294004f2d57..5bc689df815 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h @@ -46,7 +46,12 @@ namespace CIDL_FTClient_Impl CORBA::ULong count_; - typedef std::list<CORBA::ULong> TimingList; + struct ResponseTimeMeasurement { + ACE_Time_Value server_time; + ACE_Time_Value client_time; + }; + + typedef std::list<ResponseTimeMeasurement> TimingList; TimingList history_; diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp index 35827be7852..69866151ab4 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp @@ -111,6 +111,19 @@ namespace CIDL_FTClient_Impl iterations_ = iterations; } + + CORBA::ULong + FTClient_exec_i::logstart (void) + { + return logstart_; + } + + void + FTClient_exec_i::logstart (CORBA::ULong logstart) + { + logstart_ = logstart; + } + char * FTClient_exec_i::server_ior () { diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h index 6b03abebe6d..89e6f7dfb0c 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h @@ -61,11 +61,17 @@ namespace CIDL_FTClient_Impl virtual void execution_time (::CORBA::Double execution_time); - virtual ::CORBA::ULong + virtual CORBA::ULong iterations (void); virtual void - iterations (::CORBA::ULong iterations); + iterations (CORBA::ULong iterations); + + virtual CORBA::ULong + logstart (void); + + virtual void + logstart (CORBA::ULong logstart); virtual char * server_ior (void); @@ -114,6 +120,8 @@ namespace CIDL_FTClient_Impl CORBA::ULong iterations_; + CORBA::ULong logstart_; + CORBA::String_var server_ior_; std::string name_; diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp index 1760c858cee..2f75d0050da 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp @@ -58,11 +58,11 @@ namespace CIDL_FTTask_Impl // Supported or inherited operations. - CORBA::ULong + CORBA::Long FTTask_exec_i::run_task ( ::CORBA::Double execution_time) { - CIAO_DEBUG ((LM_TRACE, "x(%d, %f) ", state_, execution_time)); + CIAO_DEBUG ((LM_EMERGENCY, "x(%s) ", object_id_.c_str ())); timer_.start (); @@ -85,7 +85,6 @@ namespace CIDL_FTTask_Impl FTTask_exec_i::stop (void) { task_.stop (); - this->orb_->shutdown (); } void @@ -343,23 +342,28 @@ namespace CIDL_FTTask_Impl (primary_ ? 1 : 2), myself_.in ()); + DeCoRAM::Worker_var ref = DeCoRAM::Worker::_narrow (myself_.in ()); + // publish application in NameService for the client if (primary_) { Name_Helper_T <Worker> tnh (orb_.in ()); - DeCoRAM::Worker_var ref = DeCoRAM::Worker::_narrow (myself_.in ()); - tnh.bind ("FLARE_TESTAPPLICATION/" + object_id_, ref.in ()); + } - // and write it to a file - std::string iorfilename = object_id_ + ".ior"; - std::ofstream file (iorfilename.c_str ()); - file << orb_->object_to_string (ref.in ()); - file.flush (); - file.close (); - } + // and write it to a file + std::string iorfilename; + if (!primary_) + iorfilename = object_id_ + "-b.ior"; + else + iorfilename = object_id_ + ".ior"; + + std::ofstream file (iorfilename.c_str ()); + file << orb_->object_to_string (ref.in ()); + file.flush (); + file.close (); task_.init (orb_.in (), suicidal_count_); task_.activate (); diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h index bffe397af9c..ab5df8df465 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h @@ -47,7 +47,7 @@ namespace CIDL_FTTask_Impl // Supported or inherited operations. - virtual CORBA::ULong + virtual CORBA::Long run_task ( ::CORBA::Double execution_time); diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp index c7b769961be..51677bfeb51 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp @@ -40,8 +40,7 @@ Failure_Task::svc (void) } // don't call shutdown on regular stop - if (!stop_) - orb_->shutdown (); + orb_->shutdown (true); return 0; } diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl b/CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl index 30fd2e12fde..2628afcbbfe 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl @@ -7,7 +7,7 @@ module DeCoRAM * ms. * @return time in ms that has elapsed since the method started. */ - unsigned long run_task (in double execution_time); + long run_task (in double execution_time); void stop (); }; }; diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp index c9b0ff71b76..eba2316170e 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp @@ -1,36 +1,29 @@ // $Id$ +#include <string> +#include <vector> #include "TriggerC.h" #include "ace/Get_Opt.h" -const ACE_TCHAR *first_ior = ACE_TEXT ("file://first.ior"); const ACE_TCHAR *prefix = ACE_TEXT (""); +std::vector <std::string> applications; int parse_args (int argc, ACE_TCHAR *argv[]) { - ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:n:")); - int c; + if (argc > 1) + prefix = argv[1]; + + if (argc > 2) + { + for (int i = 2; i < argc; ++i) + { + applications.push_back (argv[i]); + } + } + else + return -1; - while ((c = get_opts ()) != -1) - switch (c) - { - case 'k': - first_ior = get_opts.opt_arg (); - break; - case 'n': - prefix = get_opts.opt_arg (); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - "-k <ior> " - "-n <prefix>" - "\n", - argv [0]), - -1); - } // Indicates sucessful parsing of the command line return 0; } @@ -45,19 +38,33 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) if (parse_args (argc, argv) != 0) return 1; - CORBA::Object_var tmp = orb->string_to_object(first_ior); + std::vector <Trigger_var> triggers; - Trigger_var trigger = Trigger::_narrow(tmp.in ()); - - if (CORBA::is_nil (trigger.in ())) + for (std::vector<std::string>::iterator it = applications.begin (); + it != applications.end (); + ++it) { - ACE_ERROR_RETURN ((LM_DEBUG, - "Nil Trigger reference <%s>\n", - first_ior), - 1); + CORBA::Object_var tmp = orb->string_to_object(it->c_str ()); + + Trigger_var trigger = Trigger::_narrow(tmp.in ()); + + if (CORBA::is_nil (trigger.in ())) + { + ACE_ERROR_RETURN ((LM_DEBUG, + "Nil Trigger reference <%s>\n", + it->c_str ()), + 1); + } + + triggers.push_back (trigger); } - trigger->start (CORBA::string_dup (prefix)); + for (std::vector<Trigger_var>::iterator it2 = triggers.begin (); + it2 != triggers.end (); + ++it2) + { + (*it2)->start (CORBA::string_dup (prefix)); + } orb->destroy (); } |