diff options
author | Sumant Tambe <sutambe@users.noreply.github.com> | 2010-08-12 22:17:30 +0000 |
---|---|---|
committer | Sumant Tambe <sutambe@users.noreply.github.com> | 2010-08-12 22:17:30 +0000 |
commit | 484377269d955a7261279c80640ed758f6a4170f (patch) | |
tree | 255896c20080a7e421261f5566eea5f25fa8ed58 | |
parent | fdc30470f2bf14cd13961c328cf8afbe9b0e30a5 (diff) | |
download | ATCD-484377269d955a7261279c80640ed758f6a4170f.tar.gz |
Basic two-phase commit for state consistency on top of CORFU
49 files changed, 756 insertions, 263 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index 9c9d1d882d8..1b2126a6b8a 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,35 +1,83 @@ +Thu Aug 12 22:10:02 UTC 2010 Sumant Tambe <sutambe@nospam> + + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h: + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp: + + * DAnCE/Interfaces/FaultCorrelationManager.idl: + + * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h: + * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp: + * DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp: + * DAnCE/tests/CIAO/FTComponents/FTTask.idl: + * DAnCE/tests/CIAO/FTComponents/FTTask_exec.h: + * DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp: + * DAnCE/tests/CIAO/FTComponents/client_trigger.cpp: + + The changes above are related to CORFU experiments and + GroupFailover two phase commit implementation. + The changes below are not related to it. + + * ciao/ComponentServer/Configurators/Configurators.mpc: + * ciao/ComponentServer/Configurators/Server_Configurator.cpp: + + * tools/Config_Handlers/DP_Handler.cpp: + + * tools/Config_Handlers/RT-CCM/CB_Handler.h: + * tools/Config_Handlers/RT-CCM/CB_Handler.cpp: + * tools/Config_Handlers/RT-CCM/CLA_Handler.h: + * tools/Config_Handlers/RT-CCM/CLA_Handler.cpp: + * tools/Config_Handlers/RT-CCM/CNPM_Handler.h: + * tools/Config_Handlers/RT-CCM/CNPM_Handler.cpp: + * tools/Config_Handlers/RT-CCM/NPM_Handler.h: + * tools/Config_Handlers/RT-CCM/NPM_Handler.cpp: + * tools/Config_Handlers/RT-CCM/OC_Handler.h: + * tools/Config_Handlers/RT-CCM/OC_Handler.cpp: + * tools/Config_Handlers/RT-CCM/OR_Handler.h: + * tools/Config_Handlers/RT-CCM/OR_Handler.cpp: + * tools/Config_Handlers/RT-CCM/PM_Handler.h: + * tools/Config_Handlers/RT-CCM/PM_Handler.cpp: + * tools/Config_Handlers/RT-CCM/PS_Handler.h: + * tools/Config_Handlers/RT-CCM/PS_Handler.cpp: + * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc: + * tools/Config_Handlers/RT-CCM/SRD_Handler.h: + * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp: + * tools/Config_Handlers/RT-CCM/TPL_Handler.h: + * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp: + * tools/Config_Handlers/RT-CCM/TP_Handler.h: + * tools/Config_Handlers/RT-CCM/TP_Handler.cpp: + 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.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> @@ -43,7 +91,7 @@ Tue Mar 17 17:45:13 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp * DAnCE/tests/CIAO/FTComponents/FTClient_exec.h * DAnCE/tests/CIAO/FTComponents/Trigger.idl: - + Added prefix paramter to the trigger interface and added a return value for the processing time to the Worker interface. @@ -51,15 +99,15 @@ Mon Mar 16 17:36:12 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp * DAnCE/tests/CIAO/FTComponents/FTTask_exec.h: - + Added timing measurement. - + * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp: - + Cosmetic changes and adding timer calibration in ctor. - + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp: - + Changed debugging output. Fri Mar 13 19:28:40 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -70,16 +118,16 @@ Fri Mar 13 19:28:40 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp * DAnCE/tests/CIAO/FTComponents/FTClient_exec.h * DAnCE/tests/CIAO/FTComponents/client_trigger.cpp - * DAnCE/tests/CIAO/FTComponents/Trigger.idl + * DAnCE/tests/CIAO/FTComponents/Trigger.idl * DAnCE/tests/CIAO/FTComponents/FTTrigger_export.h: - + Added trigger interface to client component. Fri Mar 13 04:07:28 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp: - + Added logging functionality for fou shutdown timing. Fri Mar 13 02:33:32 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -94,7 +142,7 @@ Fri Mar 13 02:33:32 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/Failure_Task.h * DAnCE/tests/CIAO/FTComponents/FTClient_exec.h * DAnCE/tests/CIAO/FTComponents/FTTask.idl: - + Changed client and server behavior for automated test cases. Thu Mar 12 15:57:15 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -105,34 +153,34 @@ Thu Mar 12 15:57:15 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/Failure_Task.h * DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp * DAnCE/tests/CIAO/FTComponents/FTComponents.mpc: - + Added new class that allows concurrent shutdown of a component. - + * DAnCE/tests/CIAO/FTComponents/killtask.cpp: - + Wrote executable to shutdown component through its Worker::stop method. * ciao/FTComponentServer/CIAO_FTComponentServer.cpp: - + relocated AppSideMonitor_Thread activation. Mon Mar 9 17:27:48 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp: - + Added remove_constraints () method. - + * ciao/FTComponentServer/CIAO_FTComponentServer.cpp: - + Adapted to new AppSideMonitor_Thread usage. Sat Mar 7 04:16:27 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp: - + Changed failure notification interface. Sun Mar 1 06:47:31 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -140,37 +188,37 @@ Sun Mar 1 06:47:31 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp: - + Added functionality for constraint creation and submission to the replication manager. Sun Mar 1 01:10:12 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp: - + Changed debugging output. - + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp: - + Added option for ior output filename. Sat Feb 28 22:22:47 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/Interfaces/FaultCorrelationManager.idl: - + Corrected typo. - + * DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp Changed structure of entry for the server component in the NamingService. - + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp: - + Made the FaultCorrelationManager an active object so that incoming failure notifications can be queued and processed in an extra thread to reduce response times. @@ -178,7 +226,7 @@ Sat Feb 28 22:22:47 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> Sat Feb 28 17:10:30 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp: - + Added call to state_changed () to trigger state replication and changed debug output level for some messages. @@ -186,7 +234,7 @@ Sat Feb 28 03:21:27 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp: - + Added registration with the FLARe ReplicationManager. Fri Feb 27 18:39:39 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -194,12 +242,12 @@ Fri Feb 27 18:39:39 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/Interfaces/FaultCorrelationManager.idl * DAnCE/Interfaces/ExecutionManager_svnt_export.h * DAnCE/Interfaces/Interfaces.mpc: - + The FaultCorrelationManager now supports DAnCE::ExecutionManagerDaemon instead of only Deployment::ExecutionManager so that a plan launcher can work with it. - + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager.mpc * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp @@ -213,7 +261,7 @@ Fri Feb 27 18:12:13 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/Deployment/FaultCorrelationManager.idl * DAnCE/Deployment/DAnCE_Core.mpc: - * DAnCE/Interfaces/FaultCorrelationManager.idl + * DAnCE/Interfaces/FaultCorrelationManager.idl * DAnCE/Interfaces/Interfaces.mpc * DAnCE/Interfaces/FaultCorrelationManager_svnt_export.h * DAnCE/Interfaces/FaultCorrelationManager_stub_export.h @@ -226,25 +274,25 @@ Fri Feb 27 18:12:13 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/FaultCorrelationManager/FaultCorrelationManager.mpc * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp - + Adjusted libraries and includes. - + Fri Feb 27 15:40:10 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/FaultCorrelation * DAnCE/tests/FaultCorrelation/proc_failure.mpc * DAnCE/tests/FaultCorrelation/proc_failure.cpp: - + Added test application that triggers the FCMs proc_failure interface. - + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp: - + Added functionality for deploymentplan analysis. - + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp: - + Added exec-mgr property to the list to make sure the list is never empty, which would cause problems in the constructor of FaultCorrelationManager_Impl. @@ -252,20 +300,20 @@ Fri Feb 27 15:40:10 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> Thu Feb 26 23:23:05 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/Deployment/FaultCorrelationManager.idl: - + Added execution manager interface as inherited interface. - + * DAnCE/Deployment/DAnCE_Core.mpc: - + Created a separate library for the FaultCorrelationManager interface. - + * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h * DAnCE/FaultCorrelationManager/FaultCorrelationManager.mpc * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp: - + Implemented basic funtionality of execution manager forwarding. Thu Feb 26 18:17:03 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -281,22 +329,22 @@ Thu Feb 26 18:17:03 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Exec.cpp * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp: - + Added sceleton for the FaultCorrelationManager. Thu Feb 26 16:05:54 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp: - + Added manual mode. - + * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp * DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp * DAnCE/tests/CIAO/FTComponents/FTClient_exec.h: - + The server reference is now resolved in every call to prevent problems with startup order of FTTask and FTClient components. - + * DAnCE/tests/CIAO/Components/SimplePublisher.mpc * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc * DAnCE/tests/CIAO/Components/SimpleNull.mpc @@ -306,78 +354,78 @@ Thu Feb 26 16:05:54 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc * DAnCE/tests/CIAO/Components/SimpleCommon.mpc * DAnCE/tests/CIAO/Components/SimpleUser.mpc: - + Added ciao_lib base project to all libraries to make them install into $ACE_ROOT/lib. * ciao/Containers/FTSession/FT_Session_Container.cpp: - + Debug output cosmetic changes. Wed Feb 25 18:17:38 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp: - + Removed RTCORBA code. - + * DAnCE/tests/CIAO/FTComponents/FTComponents.mpc: - + Changed library includes. - + * ciao/Containers/FTSession/FT_Session_Container.cpp: - + Fixed debugging output. Wed Feb 25 03:41:17 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp: - + Corrected string check. - + * MPC/config/ciao_ft_componentserver_svnt.mpb * MPC/config/ciao_ft_componentserver_stub.mpb: - + Adopted to non ft templates. * DAnCE/tests/CIAO/FTComponents/FTTask_exec.h * DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp * DAnCE/tests/CIAO/FTComponents/FTClient_exec.h * DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp: - + Add component creation functions. - + * DAnCE/tests/CIAO/FTComponents/FTComponents.mpc: Change library includes. * DAnCE/NodeApplication/NodeApplication_Impl.cpp: - + Added code to intialize a COMPONENT_SERVER attribute if present. * ciao/FTComponentServer/CIAO_Container_Impl.cpp: - + Added code for extracting the ObjectId config property and use it as a USER_ID on servant registration. - + * ciao/FTComponentServer/CIAO_FTComponentServer_Impl.cpp: - + Removed RTCORBA calls. - + * ciao/FTComponentServer/CIAO_FTComponentServer.cpp: - + Changed debugging output and changed AppSideReg usage. * ciao/FTComponentServer/CIAO_ComponentServer.mpc: - - Changed library includes. - + + Changed library includes. + * ciao/FTComponentServer/Configurator_Factory.cpp: - + Added return statement. - * ciao/FTComponentServer/Name_Helper_T.h + * ciao/FTComponentServer/Name_Helper_T.h * ciao/Containers/FTSession/FT_Session_Container.cpp: - + Fixing debugging output format. Mon Feb 23 23:07:15 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -386,10 +434,10 @@ Mon Feb 23 23:07:15 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * MPC/config/ciao_ft_componentserver_svnt.mpb * MPC/config/ciao_ft_componentserver_configurator.mpb * MPC/config/ciao_ft_componentserver_stub.mpb: - + Added MPC templates for fault tolerant session container and component server. - + * DAnCE/tests/CIAO/FTComponents * DAnCE/tests/CIAO/FTComponents/FTClient.idl * DAnCE/tests/CIAO/FTComponents/FTClient_Task.h @@ -412,13 +460,13 @@ Mon Feb 23 23:07:15 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * DAnCE/tests/CIAO/FTComponents/FTTask.cidl * DAnCE/tests/CIAO/FTComponents/FTClient_svnt_export.h * DAnCE/tests/CIAO/FTComponents/FTClient_Task.cpp: - + Added test components for FT functionality. - + * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp: - - Added manual mode for launcher executable. - + + Added manual mode for launcher executable. + * ciao/FTComponentServer * ciao/FTComponentServer/Configurator_Factory.h * ciao/FTComponentServer/CIAO_Container_Impl.cpp @@ -466,9 +514,9 @@ Mon Feb 23 23:07:15 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * ciao/FTComponentServer/CIAO_FTComponentServer.h * ciao/FTComponentServer/CIAO_CS_Client.idl * ciao/FTComponentServer/Configurator_Factory.cpp: - + Added fault tolerant component server. - + * ciao/Containers/FTSession * ciao/Containers/FTSession/FT_Session_Container.inl * ciao/Containers/FTSession/FT_Session_Container.cpp @@ -476,7 +524,7 @@ Mon Feb 23 23:07:15 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * ciao/Containers/FTSession/FT_Session_Container_export.h * ciao/Containers/FTSession/FT_Session_Container.idl * ciao/Containers/FTSession/FT_Session_Container.mpc: - + Added fault tolerant session container. Sat Feb 21 20:06:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl> diff --git a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp index 90a53fe4f9d..94545ef9892 100644 --- a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp +++ b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp @@ -138,6 +138,8 @@ namespace DAnCE timer_.start (); Deployment::Applications_var apps = dam->getApplications(); + DANCE_DEBUG ((LM_TRACE, + "size of apps is = (%d)\n",apps->length())); for (size_t i = 0; i < apps->length(); ++i) { @@ -253,8 +255,10 @@ namespace DAnCE } ACE_CString plan_id; - if (instances_.find (component_id, - plan_id) != 0) + { + ACE_Guard <ACE_Thread_Mutex> guard (instances_lock_); + if (instances_.find (component_id, + plan_id) != 0) { DANCE_DEBUG ((LM_WARNING, "FCM::app_failure (%C, %C): " @@ -264,6 +268,7 @@ namespace DAnCE component_id.c_str ())); return; } + } DANCE_DEBUG ((LM_TRACE, "FCM::app_failure (%C, %C): " @@ -334,6 +339,7 @@ namespace DAnCE { if (deploy) { + ACE_Guard <ACE_Thread_Mutex> guard (instances_lock_); // add component with the plan id it belongs to instances_.bind (plan.instance[i].name.in (), plan.UUID.in ()); @@ -345,6 +351,7 @@ namespace DAnCE } else { + ACE_Guard <ACE_Thread_Mutex> guard (instances_lock_); // remove component entry instances_.unbind (plan.instance[i].name.in ()); @@ -537,4 +544,36 @@ namespace DAnCE return constraints._retn (); } -}; + FLARE::ApplicationList* + FaultCorrelationManager_Impl::FOU_participants(const char* app) + { + ACE_CString plan_id, component_id(app); + FLARE::ApplicationList_var alist = new FLARE::ApplicationList(); + + ACE_Guard <ACE_Thread_Mutex> guard (instances_lock_); + if (instances_.find (component_id, + plan_id) != 0) + { + DANCE_DEBUG ((LM_WARNING, + "FCM::FOU_participants: " + "plan for component '%C' not found.\n", + component_id.c_str ())); + return alist._retn(); + } + + for(TInstancesOfPlan::iterator iter = instances_.begin(); + iter != instances_.end(); + ++iter) + { + if((*iter).int_id_ == plan_id) + { + size_t len = alist->length(); + alist->length(len + 1); + alist[len] = (*iter).ext_id_.c_str(); + } + } + return alist._retn(); + } + + +} diff --git a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h index 4ebea005ec1..c7d9a13624a 100644 --- a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h +++ b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h @@ -49,6 +49,8 @@ namespace DAnCE virtual ~FaultCorrelationManager_Impl(); virtual void stop_failover_unit (const char * fou_id); + virtual FLARE::ApplicationList* FOU_participants(const char* app); + // methods from inherited interfaces @@ -134,6 +136,7 @@ namespace DAnCE TDomainManagers dams_; TInstancesOfPlan instances_; + ACE_Thread_Mutex instances_lock_; TNodeMap nodes_; diff --git a/CIAO/DAnCE/Interfaces/FaultCorrelationManager.idl b/CIAO/DAnCE/Interfaces/FaultCorrelationManager.idl index afe99ddb3ec..f26203f19a1 100644 --- a/CIAO/DAnCE/Interfaces/FaultCorrelationManager.idl +++ b/CIAO/DAnCE/Interfaces/FaultCorrelationManager.idl @@ -9,7 +9,10 @@ module DAnCE { interface FaultCorrelationManager : FLARE::FaultNotification, DAnCE::ExecutionManagerDaemon { - void stop_failover_unit (in string fou_id); + /* This function is not invoked remotely. Instead, + FLARE::FaultNotification::app_failure is invoked by RM. */ + void stop_failover_unit (in string fou_id); + FLARE::ApplicationList FOU_participants(in string app); }; }; diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp index 2d77006a6c7..10568a21d6a 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp @@ -17,7 +17,8 @@ namespace CIDL_FTClient_Impl bool logging) : client_executor_ (client_executor), logging_ (logging), - count_ (0) + count_ (0), + rm_(ReplicationManager::_nil()) { timer_.calibrate (); } @@ -40,6 +41,17 @@ namespace CIDL_FTClient_Impl prefix_ = prefix; } + void + FTClient_Timer_Handler::set_replication_manager (ReplicationManager_ptr rm) + { + rm_ = ReplicationManager::_duplicate(rm); + } + + void FTClient_Timer_Handler::set_server_name(std::string const & server_name) + { + this->server_name_ = server_name; + } + int FTClient_Timer_Handler::handle_timeout (const ACE_Time_Value &, const void *) @@ -53,8 +65,8 @@ namespace CIDL_FTClient_Impl rt_current->the_priority (client_executor_->priority ()); */ - CIAO_DEBUG ((LM_EMERGENCY, "s(%s) ", - client_executor_->name ())); + CIAO_DEBUG ((LM_EMERGENCY, "\nBegin: c(%s) (%d)\n", + client_executor_->name (), count_ + 1)); if (CORBA::is_nil (server_.in ())) { @@ -73,6 +85,10 @@ namespace CIDL_FTClient_Impl server_processing_time.msec ( server_->run_task (client_executor_->execution_time ())); + rm_->finish_invocation(CORBA::string_dup(server_name_.c_str())); + CIAO_DEBUG ((LM_EMERGENCY, + "FTClient_Timer_Handler::handle_timeout () - " + "Completed run_task\n")); timer_.stop (); @@ -98,7 +114,7 @@ namespace CIDL_FTClient_Impl if ((client_executor_->iterations () > 0) && (++count_ >= client_executor_->iterations ())) { - server_->stop (); + //server_->stop (); client_executor_->ccm_passivate (); @@ -125,6 +141,7 @@ namespace CIDL_FTClient_Impl logfile += prefix_; logfile += client_executor_->name (); logfile += "-client.txt"; + std::cout << "Creating file " << logfile << std::endl; std::ofstream out (logfile.c_str ()); for (TimingList::iterator it = history_.begin (); diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h index 5bc689df815..7ce06c975de 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h @@ -8,6 +8,7 @@ #include "ace/High_Res_Timer.h" #include "tao/ORB.h" #include "WorkerC.h" +#include "orbsvcs/orbsvcs/LWFT/ReplicationManagerC.h" namespace CIDL_FTClient_Impl { @@ -18,8 +19,9 @@ namespace CIDL_FTClient_Impl class FTClient_Timer_Handler : public ACE_Event_Handler { public: - FTClient_Timer_Handler (CIDL_FTClient_Impl::FTClient_exec_i * client_executor, - bool logging = true); + FTClient_Timer_Handler ( + CIDL_FTClient_Impl::FTClient_exec_i * client_executor, + bool logging = true); void set_orb (CORBA::ORB_ptr orb); @@ -33,6 +35,9 @@ namespace CIDL_FTClient_Impl void dump (void); + void set_replication_manager(ReplicationManager_ptr); + void set_server_name(std::string const & server_name); + private: FTClient_exec_i * client_executor_; @@ -56,6 +61,10 @@ namespace CIDL_FTClient_Impl TimingList history_; std::string prefix_; + + ReplicationManager_var rm_; + + std::string server_name_; }; } // end namespace CIDL_FTClient_Impl diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp index 69866151ab4..62f1d17c861 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp @@ -53,6 +53,7 @@ namespace CIDL_FTClient_Impl void FTClient_exec_i::start (const char * prefix) { + std::cout << "FTClient_exec_i::start ()\n" ; CIAO_TRACE ("FTClient_exec_i::start ()"); if (!started_) @@ -236,6 +237,11 @@ namespace CIDL_FTClient_Impl file << orb_->object_to_string (ref.in ()); file.flush (); file.close (); + + Name_Helper_T <ReplicationManager> rmh (orb_.in ()); + timeout_handler_.set_replication_manager(rmh.resolve + ("ReplicationManager")); + timeout_handler_.set_server_name(this->name_.c_str()); } void diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask.idl b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask.idl index d1f0dae574d..3e6b72e6508 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask.idl +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask.idl @@ -12,6 +12,7 @@ module DeCoRAM attribute short role; attribute double load; attribute long failure_count; + attribute string nested_object_ior; }; home FTTaskHome manages FTTask diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp index 2f75d0050da..34dabd1dc1b 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp @@ -44,7 +44,8 @@ namespace CIDL_FTTask_Impl primary_ (true), state_ (0), suicidal_count_ (0), - task_ (state_) + task_ (state_), + done_(false) { CIAO_TRACE ("FTTask_exec_i::FTTask_exec_i (void)"); @@ -62,22 +63,47 @@ namespace CIDL_FTTask_Impl FTTask_exec_i::run_task ( ::CORBA::Double execution_time) { - CIAO_DEBUG ((LM_EMERGENCY, "x(%s) ", object_id_.c_str ())); + CIAO_DEBUG ((LM_EMERGENCY, "s(%s) ", object_id_.c_str ())); timer_.start (); - this->cpu_.run (static_cast <size_t> (execution_time)); + try + { + if (strstr(nested_object_ior_.in(), "corbaname")) + { + if (!done_) + { + next_ = nested_server (); + done_ = true; + } + next_->run_task(execution_time); + } + } + catch (CORBA::SystemException & e) + { + } + ++state_; + if (state_ == suicidal_count_) + { + CIAO_DEBUG((LM_EMERGENCY, + "\n********* Sleeping 4 seconds before exiting.\n")); + sleep(4); + exit(1); + } + //task_.signal (); + + this->cpu_.run (static_cast <size_t> (execution_time)); - agent_->state_changed (object_id_.c_str ()); + //agent_->state_changed (object_id_.c_str ()); timer_.stop (); timer_.elapsed_time (last_execution_time_); - task_.signal (); - + CIAO_DEBUG((LM_EMERGENCY, + "\nCompleted run_task in s(%s)\n", object_id_.c_str())); return last_execution_time_.msec (); } @@ -166,6 +192,26 @@ namespace CIDL_FTTask_Impl myself_ = CORBA::Object::_duplicate (COMPONENT_REFERENCE); } + char * + FTTask_exec_i::nested_object_ior () + { + return CORBA::string_dup (nested_object_ior_.in()); + } + + void + FTTask_exec_i::nested_object_ior (const char * nested_object_ior) + { + nested_object_ior_ = nested_object_ior; + } + + DeCoRAM::Worker_ptr + FTTask_exec_i::nested_server (void) + { + CORBA::Object_var obj = orb_->string_to_object (nested_object_ior_); + + return DeCoRAM::Worker::_narrow (obj.in ()); + } + CORBA::Double FTTask_exec_i::load () { diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h index ab5df8df465..300ffdd632c 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h @@ -34,6 +34,7 @@ #include "CPU/CPU_Worker.h" #include "Failure_Task.h" #include "ace/High_Res_Timer.h" +#include "WorkerC.h" namespace CIDL_FTTask_Impl { @@ -98,6 +99,14 @@ namespace CIDL_FTTask_Impl virtual void failure_count (CORBA::Long failure_count); + virtual char * + nested_object_ior (void); + + virtual void + nested_object_ior (const char * nested_object_ior); + + DeCoRAM::Worker_ptr + nested_server (void); // Port operations. // Operations from Components::SessionComponent @@ -127,11 +136,13 @@ namespace CIDL_FTTask_Impl CORBA::ORB_var orb_; StateSynchronizationAgent_var agent_; - + DeCoRAM::CCM_FTTask_Context_var context_; CORBA::Object_var myself_; + CORBA::String_var nested_object_ior_; + CUTS_CPU_Worker cpu_; std::string object_id_; @@ -149,6 +160,10 @@ namespace CIDL_FTTask_Impl ACE_High_Res_Timer timer_; ACE_Time_Value last_execution_time_; + + DeCoRAM::Worker_var next_; + + bool done_; }; extern "C" FTTASK_EXEC_Export ::Components::EnterpriseComponent_ptr diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp index eba2316170e..9479822a303 100644 --- a/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp +++ b/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp @@ -2,6 +2,7 @@ #include <string> #include <vector> +#include <iostream> #include "TriggerC.h" #include "ace/Get_Opt.h" @@ -18,6 +19,7 @@ parse_args (int argc, ACE_TCHAR *argv[]) { for (int i = 2; i < argc; ++i) { + std::cout << argv[i] << std::endl; applications.push_back (argv[i]); } } @@ -34,7 +36,6 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) try { CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); - if (parse_args (argc, argv) != 0) return 1; @@ -63,6 +64,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[]) it2 != triggers.end (); ++it2) { + std::cout << "Calling with prefix = " << prefix << std::endl; (*it2)->start (CORBA::string_dup (prefix)); } diff --git a/CIAO/ciao/ComponentServer/Configurators/Configurators.mpc b/CIAO/ciao/ComponentServer/Configurators/Configurators.mpc index de17a603bc6..b6ea9aafbd7 100644 --- a/CIAO/ciao/ComponentServer/Configurators/Configurators.mpc +++ b/CIAO/ciao/ComponentServer/Configurators/Configurators.mpc @@ -20,3 +20,22 @@ project(CIAO_Basic_Config_Manager) : ciao_lib, ciao_config_manager, ciao_compone } } +project(CIAO_RTNA_Configurator) : ciao_lib, ciao_config_manager, ciao_componentserver_stub, rtcorba { + + sharedname = CIAO_RTNA_Configurator + + dynamicflags += CIAO_RTNA_CONFIGURATOR_BUILD_DLL + + Source_Files { + RT/RTConfig_Manager.cpp + } + + Inline_Files { + RT/RTConfig_Manager.inl + } + + Header_Files { + RT/RTConfig_Manager.h + RT/RTNA_Configurator_Export.h + } +}
\ No newline at end of file diff --git a/CIAO/ciao/ComponentServer/Configurators/Server_Configurator.cpp b/CIAO/ciao/ComponentServer/Configurators/Server_Configurator.cpp index 406817972de..2ffd6ff7dc7 100755 --- a/CIAO/ciao/ComponentServer/Configurators/Server_Configurator.cpp +++ b/CIAO/ciao/ComponentServer/Configurators/Server_Configurator.cpp @@ -84,7 +84,7 @@ namespace CIAO if (this->rt_support_) { - int rt_retval = this->config_dll_.open (ACE_DLL_PREFIX ACE_TEXT ("CIAO_RTNA_Configurator"), + int rt_retval = this->config_dll_.open (/*ACE_DLL_PREFIX*/ ACE_TEXT ("CIAO_RTNA_Configurator"), ACE_DEFAULT_SHLIB_MODE, false); diff --git a/CIAO/tools/Config_Handlers/DP_Handler.cpp b/CIAO/tools/Config_Handlers/DP_Handler.cpp index 3ee8e394bf5..55ed0da09cc 100644 --- a/CIAO/tools/Config_Handlers/DP_Handler.cpp +++ b/CIAO/tools/Config_Handlers/DP_Handler.cpp @@ -205,6 +205,8 @@ ACE_RCSID (Config_Handlers, q < len; q++) { + // We now support CIAOServerResources + /* if (ACE_OS::strcmp (plan.infoProperty[q].name.in (), "CIAOServerResources") == 0) { @@ -212,6 +214,7 @@ ACE_RCSID (Config_Handlers, "(%P|%t) DP_Handler: Dumping of ServerResources not currently supported.")); continue; } + */ this->xsc_dp_->add_infoProperty ( Property_Handler::get_property ( diff --git a/CIAO/tools/Config_Handlers/RT-CCM/CB_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/CB_Handler.cpp index 85a06851d78..8c1c1fd6018 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/CB_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/CB_Handler.cpp @@ -12,7 +12,7 @@ namespace CIAO bool CB_Handler::connection_band (const ConnectionBandsDef &src, - ::CIAO::DAnCE::ORS_ConnectionBands &dest) + ::CIAO::Deployment::ORS_ConnectionBands &dest) { // Set the number of bands CORBA::ULong num (dest.bands.length ()); @@ -42,7 +42,7 @@ namespace CIAO ConnectionBandsDef - CB_Handler::connection_band (const ::CIAO::DAnCE::ORS_ConnectionBands &src) + CB_Handler::connection_band (const ::CIAO::Deployment::ORS_ConnectionBands &src) { ConnectionBandsDef cb; diff --git a/CIAO/tools/Config_Handlers/RT-CCM/CB_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/CB_Handler.h index 9c1363ab420..056248eb9cb 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/CB_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/CB_Handler.h @@ -13,7 +13,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #include "IDREF_Base.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) @@ -35,11 +35,11 @@ namespace CIAO { public: static bool connection_band (const ConnectionBandsDef &src, - ::CIAO::DAnCE::ORS_ConnectionBands &dest); + ::CIAO::Deployment::ORS_ConnectionBands &dest); - static ConnectionBandsDef connection_band (const ::CIAO::DAnCE::ORS_ConnectionBands &src); + static ConnectionBandsDef connection_band (const ::CIAO::Deployment::ORS_ConnectionBands &src); - // static IDREF_Base<::CIAO::DAnCE::ORS_ConnectionBands> IDREF; + // static IDREF_Base<::CIAO::Deployment::ORS_ConnectionBands> IDREF; }; } } diff --git a/CIAO/tools/Config_Handlers/RT-CCM/CLA_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/CLA_Handler.cpp index 39e2d72bbbf..454486b022c 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/CLA_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/CLA_Handler.cpp @@ -8,7 +8,7 @@ namespace CIAO namespace Config_Handlers { bool CLA_Handler::commandline_arguments (const ServerResourcesDef &src, - ::CIAO::DAnCE::CommandlineArgs &dest) + ::CIAO::Deployment::CommandlineArgs &dest) { ServerCmdlineOptions sco = src.cmdline(); @@ -27,7 +27,7 @@ namespace CIAO } ServerCmdlineOptions - CLA_Handler::commandline_argument (const CIAO::DAnCE::CommandlineArgs &src) + CLA_Handler::commandline_argument (const CIAO::Deployment::CommandlineArgs &src) { ServerCmdlineOptions co; diff --git a/CIAO/tools/Config_Handlers/RT-CCM/CLA_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/CLA_Handler.h index e8676b54772..907da11f0b0 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/CLA_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/CLA_Handler.h @@ -14,7 +14,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ciao/ComponentServer/CIAO_ServerResourcesC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -39,10 +39,10 @@ namespace CIAO static bool commandline_arguments ( const ServerResourcesDef &src, - ::CIAO::DAnCE::CommandlineArgs &dest); + ::CIAO::Deployment::CommandlineArgs &dest); static ServerCmdlineOptions - commandline_argument (const ::CIAO::DAnCE::CommandlineArgs &src); + commandline_argument (const ::CIAO::Deployment::CommandlineArgs &src); }; } diff --git a/CIAO/tools/Config_Handlers/RT-CCM/CNPM_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/CNPM_Handler.cpp index acc74ca8c99..0556b72d025 100755 --- a/CIAO/tools/Config_Handlers/RT-CCM/CNPM_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/CNPM_Handler.cpp @@ -61,7 +61,7 @@ namespace CIAO bool CNPM_Handler::cnw_priority_pd (const CNWPriorityModelPolicyDef &src, - ::CIAO::DAnCE::CNWPriorityModelPolicyDef &dest) + ::CIAO::Deployment::CNWPriorityModelPolicyDef &dest) { int request_array_slot = 7; long d = dscp[request_array_slot]; @@ -82,7 +82,7 @@ namespace CIAO CNWPriorityModelPolicyDef CNPM_Handler::cnw_priority_pd ( - const ::CIAO::DAnCE::CNWPriorityModelPolicyDef&) + const ::CIAO::Deployment::CNWPriorityModelPolicyDef&) { auto_ptr <CNWPriorityModelPolicyDef> pmd; pmd.reset (new CNWPriorityModelPolicyDef (0, 0)); diff --git a/CIAO/tools/Config_Handlers/RT-CCM/CNPM_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/CNPM_Handler.h index 39da8b2fae4..f3d048e6da2 100755 --- a/CIAO/tools/Config_Handlers/RT-CCM/CNPM_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/CNPM_Handler.h @@ -11,7 +11,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -32,10 +32,10 @@ namespace CIAO { public: static bool cnw_priority_pd (const CNWPriorityModelPolicyDef &src, - ::CIAO::DAnCE::CNWPriorityModelPolicyDef &dest); + ::CIAO::Deployment::CNWPriorityModelPolicyDef &dest); static CNWPriorityModelPolicyDef cnw_priority_pd ( - const ::CIAO::DAnCE::CNWPriorityModelPolicyDef &src); + const ::CIAO::Deployment::CNWPriorityModelPolicyDef &src); }; } diff --git a/CIAO/tools/Config_Handlers/RT-CCM/NPM_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/NPM_Handler.cpp index d530b2169e2..5ca3e947527 100755 --- a/CIAO/tools/Config_Handlers/RT-CCM/NPM_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/NPM_Handler.cpp @@ -61,16 +61,16 @@ namespace CIAO bool NPM_Handler::nw_priority_model_pd (const NWPriorityModelPolicyDef &src, - ::CIAO::DAnCE::NWPriorityModelPolicyDef &dest) + ::CIAO::Deployment::NWPriorityModelPolicyDef &dest) { switch (src.nw_priority_model ().integral ()) { case NWPriorityModel::SERVER_DECLARED_NWPRIORITY_l: - dest.nw_priority_model = ::CIAO::DAnCE::SERVER_DECLARED_NWPRIORITY; + dest.nw_priority_model = ::CIAO::Deployment::SERVER_DECLARED_NWPRIORITY; break; case NWPriorityModel::CLIENT_PROPAGATED_NWPRIORITY_l: - dest.nw_priority_model = ::CIAO::DAnCE::CLIENT_PROPAGATED_NWPRIORITY; + dest.nw_priority_model = ::CIAO::Deployment::CLIENT_PROPAGATED_NWPRIORITY; break; default: @@ -99,18 +99,18 @@ namespace CIAO NWPriorityModelPolicyDef NPM_Handler::nw_priority_model_pd ( - const ::CIAO::DAnCE::NWPriorityModelPolicyDef &src) + const ::CIAO::Deployment::NWPriorityModelPolicyDef &src) { auto_ptr <NWPriorityModelPolicyDef> pmd; switch (src.nw_priority_model) { - case ::CIAO::DAnCE::CLIENT_PROPAGATED_NWPRIORITY: + case ::CIAO::Deployment::CLIENT_PROPAGATED_NWPRIORITY: pmd.reset (new NWPriorityModelPolicyDef (NWPriorityModel::CLIENT_PROPAGATED_NWPRIORITY, 0, 0)); break; - case ::CIAO::DAnCE::SERVER_DECLARED_NWPRIORITY: + case ::CIAO::Deployment::SERVER_DECLARED_NWPRIORITY: pmd.reset (new NWPriorityModelPolicyDef (NWPriorityModel::SERVER_DECLARED_NWPRIORITY, 0, 0)); break; diff --git a/CIAO/tools/Config_Handlers/RT-CCM/NPM_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/NPM_Handler.h index bde507ba189..849fd83e064 100755 --- a/CIAO/tools/Config_Handlers/RT-CCM/NPM_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/NPM_Handler.h @@ -11,7 +11,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -32,10 +32,10 @@ namespace CIAO { public: static bool nw_priority_model_pd (const NWPriorityModelPolicyDef &src, - ::CIAO::DAnCE::NWPriorityModelPolicyDef &dest); + ::CIAO::Deployment::NWPriorityModelPolicyDef &dest); static NWPriorityModelPolicyDef nw_priority_model_pd ( - const ::CIAO::DAnCE::NWPriorityModelPolicyDef &src); + const ::CIAO::Deployment::NWPriorityModelPolicyDef &src); }; } diff --git a/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp index 41c45ee7c96..d54ef46043d 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp @@ -12,7 +12,7 @@ namespace CIAO bool OC_Handler::orb_config ( const ORBConfigs &src, - ::CIAO::DAnCE::ORBConfigs &dest) + ::CIAO::Deployment::ORBConfigs &dest) { if (src.resources_p ()) OR_Handler::orb_resources (src.resources (), dest.orb_resources); @@ -33,7 +33,7 @@ namespace CIAO ORBConfigs OC_Handler::orb_config ( - const ::CIAO::DAnCE::ORBConfigs &src) + const ::CIAO::Deployment::ORBConfigs &src) { ORBConfigs oc; diff --git a/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.h index abcd2c0a3c5..0aef720040e 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.h @@ -15,7 +15,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -37,9 +37,9 @@ namespace CIAO { public: static bool orb_config (const ORBConfigs &src, - ::CIAO::DAnCE::ORBConfigs &dest); + ::CIAO::Deployment::ORBConfigs &dest); - static ORBConfigs orb_config (const ::CIAO::DAnCE::ORBConfigs &src); + static ORBConfigs orb_config (const ::CIAO::Deployment::ORBConfigs &src); }; } diff --git a/CIAO/tools/Config_Handlers/RT-CCM/OR_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/OR_Handler.cpp index 28c829931e8..c8f10b5da0c 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/OR_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/OR_Handler.cpp @@ -11,7 +11,7 @@ namespace CIAO namespace Config_Handlers { bool OR_Handler::orb_resources (const ORBResources &src, - ::CIAO::DAnCE::ORBResources &dest) + ::CIAO::Deployment::ORBResources &dest) { // We know that there should be only one. dest.length (1); @@ -52,7 +52,7 @@ namespace CIAO return true; } - ORBResources OR_Handler::orb_resources (const ::CIAO::DAnCE::ORBResources &src) + ORBResources OR_Handler::orb_resources (const ::CIAO::Deployment::ORBResources &src) { if (src.length () == 0 || src[0].threadpool_list.length () == 0 || diff --git a/CIAO/tools/Config_Handlers/RT-CCM/OR_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/OR_Handler.h index 7720a230453..41250dc7e99 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/OR_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/OR_Handler.h @@ -14,7 +14,7 @@ #include /**/ "ace/pre.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #include "RT_CCM_Handlers_Export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) @@ -37,11 +37,11 @@ namespace CIAO public: static bool orb_resources (const ORBResources &src, - ::CIAO::DAnCE::ORBResources &dest); + ::CIAO::Deployment::ORBResources &dest); class No_Resource {}; - static ORBResources orb_resources (const ::CIAO::DAnCE::ORBResources &src); + static ORBResources orb_resources (const ::CIAO::Deployment::ORBResources &src); }; diff --git a/CIAO/tools/Config_Handlers/RT-CCM/PM_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/PM_Handler.cpp index 088a426505c..2db65919f14 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/PM_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/PM_Handler.cpp @@ -11,16 +11,16 @@ namespace CIAO bool PM_Handler::priority_model_pd (const PriorityModelPolicyDef &src, - ::CIAO::DAnCE::PriorityModelPolicyDef &dest) + ::CIAO::Deployment::PriorityModelPolicyDef & dest) { switch (src.priority_model ().integral ()) { case PriorityModel::SERVER_DECLARED_l: - dest.priority_model = ::CIAO::DAnCE::SERVER_DECLARED; + dest.priority_model = ::CIAO::Deployment::SERVER_DECLARED; break; case PriorityModel::CLIENT_PROPAGATED_l: - dest.priority_model = ::CIAO::DAnCE::CLIENT_PROPAGATED; + dest.priority_model = ::CIAO::Deployment::CLIENT_PROPAGATED; break; default: @@ -39,17 +39,17 @@ namespace CIAO PriorityModelPolicyDef - PM_Handler::priority_model_pd (const ::CIAO::DAnCE::PriorityModelPolicyDef &src) + PM_Handler::priority_model_pd (const ::CIAO::Deployment::PriorityModelPolicyDef &src) { auto_ptr <PriorityModelPolicyDef> pmd; switch (src.priority_model) { - case ::CIAO::DAnCE::CLIENT_PROPAGATED: + case ::CIAO::Deployment::CLIENT_PROPAGATED: pmd.reset (new PriorityModelPolicyDef (PriorityModel::CLIENT_PROPAGATED)); break; - case ::CIAO::DAnCE::SERVER_DECLARED: + case ::CIAO::Deployment::SERVER_DECLARED: pmd.reset (new PriorityModelPolicyDef (PriorityModel::SERVER_DECLARED)); break; diff --git a/CIAO/tools/Config_Handlers/RT-CCM/PM_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/PM_Handler.h index 2063eec449a..e0f7a65b2a8 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/PM_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/PM_Handler.h @@ -12,7 +12,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -33,9 +33,9 @@ namespace CIAO { public: static bool priority_model_pd (const PriorityModelPolicyDef &src, - ::CIAO::DAnCE::PriorityModelPolicyDef &dest); + ::CIAO::Deployment::PriorityModelPolicyDef &dest); - static PriorityModelPolicyDef priority_model_pd (const ::CIAO::DAnCE::PriorityModelPolicyDef &src); + static PriorityModelPolicyDef priority_model_pd (const ::CIAO::Deployment::PriorityModelPolicyDef &src); }; } diff --git a/CIAO/tools/Config_Handlers/RT-CCM/PS_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/PS_Handler.cpp index 16a2f71f40a..9df8ec0a955 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/PS_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/PS_Handler.cpp @@ -12,7 +12,7 @@ namespace CIAO { bool PS_Handler::policy_set (const PolicySet &src, - ::CIAO::DAnCE::PolicySet &dest) + ::CIAO::Deployment::PolicySet &dest) { if (src.id_p ()) dest.Id = CORBA::string_dup (src.id ().c_str ()); @@ -30,7 +30,7 @@ namespace CIAO i != src.end_priorityModel (); ++i) { - ::CIAO::DAnCE::PriorityModelPolicyDef pmd; + ::CIAO::Deployment::PriorityModelPolicyDef pmd; PM_Handler::priority_model_pd (*i, pmd); @@ -42,7 +42,7 @@ namespace CIAO i != src.end_nwpriorityModel (); ++i) { - ::CIAO::DAnCE::NWPriorityModelPolicyDef npmd; + ::CIAO::Deployment::NWPriorityModelPolicyDef npmd; NPM_Handler::nw_priority_model_pd (*i, npmd); @@ -54,7 +54,7 @@ namespace CIAO i != src.end_cnwpriorityModel (); ++i) { - ::CIAO::DAnCE::CNWPriorityModelPolicyDef cnpmd; + ::CIAO::Deployment::CNWPriorityModelPolicyDef cnpmd; CNPM_Handler::cnw_priority_pd (*i, cnpmd); @@ -65,7 +65,7 @@ namespace CIAO i != src.end_threadpool (); ++i) { - ::CIAO::DAnCE::ThreadpoolPolicyDef tpd; + ::CIAO::Deployment::ThreadpoolPolicyDef tpd; tpd.Id = CORBA::string_dup (i->id ().c_str ()); @@ -77,7 +77,7 @@ namespace CIAO i != src.end_priorityBandedConnection (); ++i) { - ::CIAO::DAnCE::PriorityBandedConnectionPolicyDef pbc; + ::CIAO::Deployment::PriorityBandedConnectionPolicyDef pbc; pbc.Id = CORBA::string_dup (i->id ().c_str ()); @@ -87,7 +87,7 @@ namespace CIAO } PolicySet - PS_Handler::policy_set (const ::CIAO::DAnCE::PolicySet &src) + PS_Handler::policy_set (const ::CIAO::Deployment::PolicySet &src) { PolicySet ps; @@ -104,29 +104,29 @@ namespace CIAO switch (src.policies[i]._d ()) { - case ::CIAO::DAnCE::PRIORITY_MODEL_POLICY_TYPE: + case ::CIAO::Deployment::PRIORITY_MODEL_POLICY_TYPE: ps.add_priorityModel ( PM_Handler::priority_model_pd ( src.policies[i].PriorityModelDef ())); break; - case ::CIAO::DAnCE::NETWORK_PRIORITY_TYPE: + case ::CIAO::Deployment::NETWORK_PRIORITY_TYPE: ps.add_nwpriorityModel ( NPM_Handler::nw_priority_model_pd ( src.policies[i].NWPriorityModelDef ())); break; - case ::CIAO::DAnCE::CLIENT_NETWORK_PRIORITY_TYPE: + case ::CIAO::Deployment::CLIENT_NETWORK_PRIORITY_TYPE: ps.add_cnwpriorityModel ( CNPM_Handler::cnw_priority_pd ( src.policies[i].CNWPriorityModelDef ())); break; - case ::CIAO::DAnCE::THREADPOOL_POLICY_TYPE: + case ::CIAO::Deployment::THREADPOOL_POLICY_TYPE: ps.add_threadpool (src.policies[i].ThreadpoolDef ().Id.in ()); break; - case ::CIAO::DAnCE::PRIORITY_BANDED_CONNECTION_POLICY_TYPE: + case ::CIAO::Deployment::PRIORITY_BANDED_CONNECTION_POLICY_TYPE: ps.add_priorityBandedConnection ( src.policies[i].PriorityBandedConnectionDef ().Id.in ()); break; diff --git a/CIAO/tools/Config_Handlers/RT-CCM/PS_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/PS_Handler.h index 5c3cb4ae996..3f6a685f6fc 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/PS_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/PS_Handler.h @@ -12,7 +12,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -33,9 +33,9 @@ namespace CIAO { public: static bool policy_set (const PolicySet &src, - ::CIAO::DAnCE::PolicySet &dest); + ::CIAO::Deployment::PolicySet &dest); - static PolicySet policy_set (const ::CIAO::DAnCE::PolicySet &src); + static PolicySet policy_set (const ::CIAO::Deployment::PolicySet &src); }; } diff --git a/CIAO/tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc b/CIAO/tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc index eb95e0788d5..d59711ca67d 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc +++ b/CIAO/tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc @@ -27,7 +27,7 @@ project (RT_CCM_Config_Handlers) : acelib, dance_deployment_stub, ciao_config_ha after += RT_CCM_XML_Generation - requires += dummy_label +// requires += dummy_label Source_Files { CIAOServerResources.cpp diff --git a/CIAO/tools/Config_Handlers/RT-CCM/SRD_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/SRD_Handler.cpp index 17ce790182e..e3573d586da 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/SRD_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/SRD_Handler.cpp @@ -1,5 +1,5 @@ // $Id$ -#include "Utils/XML_Typedefs.h" +#include "XML_Typedefs.h" #include "SRD_Handler.h" #include "CIAOServerResources.hpp" #include "CLA_Handler.h" @@ -15,7 +15,7 @@ namespace CIAO retval_ (false) { XERCES_CPP_NAMESPACE::DOMDocument *dom = - XML_HELPER.create_dom (file); + XML_Helper::XML_HELPER.create_dom (file); if (!dom) throw SRD_Handler::NoSRD (); @@ -36,7 +36,7 @@ namespace CIAO throw NoSRD (); } - SRD_Handler::SRD_Handler (::CIAO::DAnCE::ServerResource *srd): + SRD_Handler::SRD_Handler (::CIAO::Deployment::ServerResource *srd): idl_srd_(srd), srd_(0), retval_(false) @@ -52,7 +52,7 @@ namespace CIAO bool SRD_Handler::build_srd () { - this->idl_srd_.reset ( new ::CIAO::DAnCE::ServerResource ); + this->idl_srd_.reset ( new ::CIAO::Deployment::ServerResource ); if(this->srd_->cmdline_p()) { @@ -111,7 +111,7 @@ namespace CIAO return true; } - ::CIAO::DAnCE::ServerResource const * + ::CIAO::Deployment::ServerResource const * SRD_Handler::srd_idl () const { if(!this->idl_srd_.get()) @@ -121,7 +121,7 @@ namespace CIAO return this->idl_srd_.get(); } - ::CIAO::DAnCE::ServerResource * + ::CIAO::Deployment::ServerResource * SRD_Handler::srd_idl () { if(!this->idl_srd_.get()) diff --git a/CIAO/tools/Config_Handlers/RT-CCM/SRD_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/SRD_Handler.h index c55447b5562..95437d7e61d 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/SRD_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/SRD_Handler.h @@ -14,7 +14,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #include "ace/Auto_Ptr.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) @@ -42,13 +42,13 @@ namespace CIAO SRD_Handler(ServerResourcesDef *srd); - SRD_Handler(::CIAO::DAnCE::ServerResource *srd); + SRD_Handler(::CIAO::Deployment::ServerResource *srd); ~SRD_Handler (void); - ::CIAO::DAnCE::ServerResource const *srd_idl (void) const; + ::CIAO::Deployment::ServerResource const *srd_idl (void) const; - ::CIAO::DAnCE::ServerResource *srd_idl (void); + ::CIAO::Deployment::ServerResource *srd_idl (void); ServerResourcesDef const *srd_xsc (void) const; @@ -60,7 +60,7 @@ namespace CIAO bool build_xsc (); - auto_ptr < ::CIAO::DAnCE::ServerResource > idl_srd_; + auto_ptr < ::CIAO::Deployment::ServerResource > idl_srd_; auto_ptr <ServerResourcesDef> srd_; diff --git a/CIAO/tools/Config_Handlers/RT-CCM/TPL_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/TPL_Handler.cpp index 4d65478d19c..1e565d37422 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/TPL_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/TPL_Handler.cpp @@ -10,7 +10,7 @@ namespace CIAO bool TPL_Handler::threadpool_with_lanes ( const ThreadpoolWithLanesDef &src, - ::CIAO::DAnCE::ORS_ThreadpoolWithLanes &dest) + ::CIAO::Deployment::ORS_ThreadpoolWithLanes &dest) { if (src.id_p ()) { @@ -52,7 +52,7 @@ namespace CIAO } ThreadpoolWithLanesDef TPL_Handler::threadpool_with_lanes ( - const ::CIAO::DAnCE::ORS_ThreadpoolWithLanes &src) + const ::CIAO::Deployment::ORS_ThreadpoolWithLanes &src) { ThreadpoolWithLanesDef tpl (XMLSchema::unsignedLong (src.stacksize), XMLSchema::boolean ((src.allow_borrowing)), diff --git a/CIAO/tools/Config_Handlers/RT-CCM/TPL_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/TPL_Handler.h index 6d1b3b72e98..b5e045eed7a 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/TPL_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/TPL_Handler.h @@ -14,7 +14,7 @@ #include /**/ "ace/pre.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #include "RT_CCM_Handlers_Export.h" @@ -35,10 +35,10 @@ namespace CIAO static bool threadpool_with_lanes ( const ThreadpoolWithLanesDef &src, - ::CIAO::DAnCE::ORS_ThreadpoolWithLanes &dest); + ::CIAO::Deployment::ORS_ThreadpoolWithLanes &dest); static ThreadpoolWithLanesDef threadpool_with_lanes ( - const ::CIAO::DAnCE::ORS_ThreadpoolWithLanes &src); + const ::CIAO::Deployment::ORS_ThreadpoolWithLanes &src); }; } } diff --git a/CIAO/tools/Config_Handlers/RT-CCM/TP_Handler.cpp b/CIAO/tools/Config_Handlers/RT-CCM/TP_Handler.cpp index 3def524a0bb..b740717936a 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/TP_Handler.cpp +++ b/CIAO/tools/Config_Handlers/RT-CCM/TP_Handler.cpp @@ -8,7 +8,7 @@ namespace CIAO namespace Config_Handlers { bool TP_Handler::thread_pool (const ThreadpoolDef &src, - ::CIAO::DAnCE::ORS_Threadpool &dest) + ::CIAO::Deployment::ORS_Threadpool &dest) { dest.Id = CORBA::String_var (src.id ().c_str ()); @@ -36,7 +36,7 @@ namespace CIAO } ThreadpoolDef - TP_Handler::thread_pool (const ::CIAO::DAnCE::ORS_Threadpool &src) + TP_Handler::thread_pool (const ::CIAO::Deployment::ORS_Threadpool &src) { ThreadpoolDef tp (XMLSchema::unsignedLong (src.stacksize), XMLSchema::unsignedLong (src.static_threads), diff --git a/CIAO/tools/Config_Handlers/RT-CCM/TP_Handler.h b/CIAO/tools/Config_Handlers/RT-CCM/TP_Handler.h index 34172995405..c979fcf76c6 100644 --- a/CIAO/tools/Config_Handlers/RT-CCM/TP_Handler.h +++ b/CIAO/tools/Config_Handlers/RT-CCM/TP_Handler.h @@ -14,7 +14,7 @@ #include /**/ "ace/pre.h" #include "RT_CCM_Handlers_Export.h" -#include "DAnCE/Deployment/CIAO_ServerResourcesC.h" +#include "ComponentServer/CIAO_ServerResourcesC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -35,9 +35,9 @@ namespace CIAO { public: static bool thread_pool (const ThreadpoolDef &src, - ::CIAO::DAnCE::ORS_Threadpool &dest); + ::CIAO::Deployment::ORS_Threadpool &dest); - static ThreadpoolDef thread_pool (const ::CIAO::DAnCE::ORS_Threadpool &src); + static ThreadpoolDef thread_pool (const ::CIAO::Deployment::ORS_Threadpool &src); }; } } diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 287612e1b89..84791569278 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,21 @@ +Thu Aug 12 22:14:46 UTC 2010 Sumant Tambe <sutambe@nospam> + + * orbsvcs/LWFT_Service/ReplicationManager_process.cpp: + + * orbsvcs/orbsvcs/LWFT/AppSideMonitor_Thread.cpp: + * orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.h: + * orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.cpp: + * orbsvcs/orbsvcs/LWFT/LWFT.mpc: + * orbsvcs/orbsvcs/LWFT/ReplicationManager.h: + * orbsvcs/orbsvcs/LWFT/ReplicationManager.idl: + * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: + * orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent.idl: + * orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.h: + * orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.cpp: + + The above changes are related to CORFU results and GroupFailover + implementation with two phase commit. + Sun Mar 22 03:04:48 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/ReplicationManager.h @@ -7,30 +25,30 @@ Sun Mar 22 03:04:48 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/HostMonitorImpl.cpp * orbsvcs/orbsvcs/LWFT/HMOptions.cpp * orbsvcs/LWFT_Service/host_monitor.cpp: - + Added logging for failure timing. Wed Mar 18 21:06:23 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: - + Removed triggering of a process failure in case of a failed StateSynchronizationAgent to prevent duplicate notifications due to HostMonitor messages. * orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp: - + Fixed behavioral bugs. - + * orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker.mpc * orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp - + Added RTCORBA code to client and server. * tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp: - + Removed throw statements that interfere with the interceptor framework. @@ -43,7 +61,7 @@ Tue Mar 17 21:37:47 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.h * orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp: - + Changed server and client to take server processing time into account and added additional client parameters for logging output control. @@ -52,51 +70,51 @@ Fri Mar 13 03:40:01 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/ReplicationManager.h * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: - + Added logging for process failure times. Fri Mar 13 02:25:36 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.h: - + Removed unnecessary ofstream member. Thu Mar 12 15:28:41 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: - + Fixed behavior of static_selection_algo (). Thu Mar 12 03:48:16 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> - * orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp + * orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.h: - + Added task for failure that can be triggered based on the invocation count. - * orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp + * orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.h * orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp: - + Changed measurement and shutdown behavior. Tue Mar 10 20:19:22 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/HostMonitorImpl.cpp: * orbsvcs/orbsvcs/LWFT/AppSideMonitor_Thread.cpp: - + Debugging output and other minor changes. - + * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: - + Added timing output. - + * orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent.idl: - + Cosmetic changes. - + * orbsvcs/examples/FaultTolerance/FLARe/Worker * orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker.idl @@ -107,7 +125,7 @@ Tue Mar 10 20:19:22 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp * orbsvcs/examples/FaultTolerance/FLARe/Worker/run_test.pl: - + Added new test application for timing measurements. Mon Mar 9 17:30:45 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -115,11 +133,11 @@ Mon Mar 9 17:30:45 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/AppSideMonitor_Thread.cpp * orbsvcs/orbsvcs/LWFT/Failure_Handler.cpp * orbsvcs/orbsvcs/LWFT/HostMonitorImpl.cpp: - + Changed debugging output. - + * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: - + Added functionality to remove state sync agents in case of process failures. @@ -141,10 +159,10 @@ Mon Mar 9 15:54:19 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/HostMonitorImpl.cpp * orbsvcs/orbsvcs/LWFT/StateSyncAgentTask.cpp * orbsvcs/LWFT_Service/ReplicationManager_process.cpp: - + Manually merged in changes from FLARE_F6 branch revisions 84712 - 84732. - + * orbsvcs/examples/FaultTolerance/FLARe * orbsvcs/examples/FaultTolerance/FLARe/no-RT * orbsvcs/examples/FaultTolerance/FLARe/no-RT/ServerTask.h @@ -163,7 +181,7 @@ Mon Mar 9 15:54:19 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/examples/FaultTolerance/FLARe/no-RT/no-RT.mpc * orbsvcs/examples/FaultTolerance/FLARe/no-RT/state_ts_export.h * orbsvcs/examples/FaultTolerance/FLARe/no-RT/test_i.h: - + Added FLARe example application. Sat Mar 7 04:01:52 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -171,20 +189,20 @@ Sat Mar 7 04:01:52 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/HMOptions.h * orbsvcs/orbsvcs/LWFT/HMOptions.cpp * orbsvcs/orbsvcs/LWFT/HostMonitorImpl.cpp: - + Added debugging level option. - - * orbsvcs/orbsvcs/LWFT/ReplicationManager.h + + * orbsvcs/orbsvcs/LWFT/ReplicationManager.h * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp * orbsvcs/orbsvcs/LWFT/FaultNotification.idl: - + Changed failure notification interface. * orbsvcs/orbsvcs/LWFT/AppSideReg.h: * orbsvcs/orbsvcs/LWFT/AppSideReg.cpp: * orbsvcs/orbsvcs/LWFT/AppOptions.cpp: * orbsvcs/orbsvcs/LWFT/AppOptions.h: - + Moved storage of the application monitor thread class from class AppSideReg, which is no longer a thread in its own right and hence goes out of scope quickly, to @@ -193,11 +211,11 @@ Sat Mar 7 04:01:52 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> Sun Mar 1 06:46:09 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/ReplicationManager.h: - + Removed unnecessary header inclusion. - + * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: - + Changed debugging output. Sun Mar 1 05:53:24 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -205,53 +223,53 @@ Sun Mar 1 05:53:24 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/ReplicationManager.h * orbsvcs/orbsvcs/LWFT/ReplicationManager.idl * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: - + Exchanged replica_selection_algorithm. Sat Feb 28 22:21:06 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp * orbsvcs/orbsvcs/LWFT/FaultNotification.idl: - + Changed callback method name. Sat Feb 28 17:06:22 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/LWFT.mpc: - + Generate typcode and any information for the StateSynchronizationAgent interface. - + * orbsvcs/orbsvcs/LWFT/AppInfo.idl: - + Added process id information for the state synchronization agent list. - + * orbsvcs/orbsvcs/LWFT/ReplicationManager.h * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp: - + When a state synchronization agent registers its process id will be stored so that the replication manager later can find errors - based on failed state synchronization instances. + based on failed state synchronization instances. Sat Feb 28 00:31:20 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/AppSideMonitor_Thread.cpp: Changed debugging level in error case. - + * orbsvcs/orbsvcs/LWFT/FaultNotification.idl: * orbsvcs/orbsvcs/LWFT/ReplicationManager.idl * orbsvcs/orbsvcs/LWFT/ReplicationManager.h * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp - + Added FaultNotifier interface to ReplicationManager. Thu Feb 26 23:27:15 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/LWFT.mpc * orbsvcs/orbsvcs/LWFT/FaultNotification.idl: - + Added FaultNotification interface definition. Thu Feb 26 04:24:02 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> @@ -259,10 +277,10 @@ Thu Feb 26 04:24:02 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * MPC/config/lwft_server.mpb * MPC/config/lwft_dds.mpb * MPC/config/lwft_client.mpb: - + Added mpc templates for the lightweight fault tolerance framework. - + * orbsvcs/orbsvcs/LWFT * orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.h * orbsvcs/orbsvcs/LWFT/DDSStateUpdate_T.cpp @@ -341,18 +359,18 @@ Thu Feb 26 04:24:02 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * orbsvcs/orbsvcs/LWFT/Monitor_Manager.h * orbsvcs/orbsvcs/LWFT/DDSFailure.h * orbsvcs/orbsvcs/LWFT/Failure_Handler.h: - + Added LWFT libraries. - + * orbsvcs/LWFT_Service * orbsvcs/LWFT_Service/RMOptions.h * orbsvcs/LWFT_Service/ReplicationManager_process.cpp * orbsvcs/LWFT_Service/host_monitor.cpp * orbsvcs/LWFT_Service/LWFT_Service.mpc * orbsvcs/LWFT_Service/RMOptions.cpp: - - Added LWFT services. - + + Added LWFT services. + * TAO_IDL/include/ast_structure.h * TAO_IDL/include/idl_global.h * TAO_IDL/include/ast_type.h @@ -364,7 +382,7 @@ Thu Feb 26 04:24:02 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu> * TAO_IDL/fe/lex.yy.cpp * TAO_IDL/fe/idl.ll * TAO_IDL/util/utl_global.cpp: - + Added changes to IDL compiler that generate DDS type information. diff --git a/TAO/orbsvcs/LWFT_Service/ReplicationManager_process.cpp b/TAO/orbsvcs/LWFT_Service/ReplicationManager_process.cpp index cd95933d46b..be344aec916 100644 --- a/TAO/orbsvcs/LWFT_Service/ReplicationManager_process.cpp +++ b/TAO/orbsvcs/LWFT_Service/ReplicationManager_process.cpp @@ -94,13 +94,17 @@ main (int argc, char *argv[]) // std::cout << "Before StateSyncAgent." << std::endl; - StateSynchronizationAgent_i* ssa_servant = +/* ssa_servant does not seem to be used anywhere. + StateSyncAgentTask creates an agent in its svc method. + + StateSynchronizationAgent_i* ssa_servant = new StateSynchronizationAgent_i ( AppOptions::instance ()->host_id (), AppOptions::instance ()->process_id (), !(AppOptions::instance ()->use_dds ())); PortableServer::ServantBase_var owner_xfer_ssa (ssa_servant); +*/ // Create task for state synchronization agent. StateSyncAgentTask *sync_agent_thread = diff --git a/TAO/orbsvcs/orbsvcs/LWFT/AppSideMonitor_Thread.cpp b/TAO/orbsvcs/orbsvcs/LWFT/AppSideMonitor_Thread.cpp index c39ee22f11e..312bcd4f974 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/AppSideMonitor_Thread.cpp +++ b/TAO/orbsvcs/orbsvcs/LWFT/AppSideMonitor_Thread.cpp @@ -111,7 +111,7 @@ AppSideMonitor_Thread::svc (void) port_ = AppOptions::instance ()->port (); } - ACE_DEBUG ((LM_TRACE, + ACE_DEBUG ((LM_ERROR, "AppSideMonitor_Thread::svc - got heartbeat port " "%d from hm.\n", port_)); diff --git a/TAO/orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.cpp b/TAO/orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.cpp index 15980406041..e98db7e6cdc 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.cpp +++ b/TAO/orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.cpp @@ -33,3 +33,9 @@ CorbaStateUpdate::set_state (const ::CORBA::Any & state_value) ra->set_state (state_value); } } + +CORBA::Object_ptr CorbaStateUpdate::application() const +{ + return application_.in(); +} + diff --git a/TAO/orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.h b/TAO/orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.h index e701b26dbd2..7b6e0d14ed6 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.h +++ b/TAO/orbsvcs/orbsvcs/LWFT/CorbaStateUpdate.h @@ -35,6 +35,8 @@ public: /// method to set the virtual void set_state (const ::CORBA::Any & state_value); + CORBA::Object_ptr application() const; + private: CORBA::Object_var application_; }; diff --git a/TAO/orbsvcs/orbsvcs/LWFT/LWFT.mpc b/TAO/orbsvcs/orbsvcs/LWFT/LWFT.mpc index eec1fd8b039..2d61595ed9f 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/LWFT.mpc +++ b/TAO/orbsvcs/orbsvcs/LWFT/LWFT.mpc @@ -165,6 +165,7 @@ project(*ReplicationManager) : portableserver, orbsvcs_output { dynamicflags = RM_BUILD_DLL idlflags += -Wb,export_macro=RM_Export \ -Wb,export_include=rm_export.h + idlflags -= -Sa -St IDL_Files { ReplicationManager.idl diff --git a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp index 669231273a2..4357599c3d9 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp +++ b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp @@ -1797,6 +1797,97 @@ ReplicationManager_i::get_next (const char * /* object_id */) return CORBA::Object::_nil (); } +void ReplicationManager_i::finish_invocation(const char * object_id) +{ + // 2PC + // Acquiring two lock like this could lead to a deadlock if + // some other thread is acquiring the same two locks in the + // reverse order. One solution is to put all these locks in an + // array and acquire them only in the increasing order of index. + ACE_Guard<ACE_Recursive_Thread_Mutex> appset_guard(appset_lock_); + ACE_Guard<ACE_Thread_Mutex> ssa_guard(state_sync_agent_list_mutex_); + + if(phase(1, object_id)) + phase(2, object_id); + else + { + ACE_ERROR ((LM_ERROR, + "ReplicationManager_i::finish_invocation(): " + "phase 1 failed. Skipping phase 2.\n")); + } +} + +bool ReplicationManager_i::phase(int phase, const char * /* object_id */) +{ + // object_id is supposed to be used to lookup the pariticipants + // in an FOU. object_id is the head of the FOU. A simplication is + // assumed here that all the objects in the app_set are the FOU participants. + + bool precommit_success = true; + + try { + // locks acquired in finish_invocation. + for(OBJECTID_APPSET_MAP::iterator iter = objectid_appset_map_.begin(); + (iter != objectid_appset_map_.end()) && precommit_success; + ++iter) + { + if ((*iter).ext_id_ == "ReplicationManager") + continue; + + APP_SET app_set((*iter).int_id_); + + for(APP_SET::iterator app_set_iter = app_set.begin(); + (app_set_iter != app_set.end()) && precommit_success; + ++app_set_iter) + { + if((*app_set_iter).role == phase) + { + StateSynchronizationAgent_var ssa; + + // locks acquired in finish_invocation. + if(state_synchronization_agent_map_.find( + (*app_set_iter).process_id, ssa) == 0) + { + ACE_ERROR ((LM_ERROR, + "ReplicationManager_i::phase(): " + "Found SSA for objectid = %s, phase = %d\n", + (*iter).ext_id_.c_str(), phase)); + if(phase == 1) + { + precommit_success = + ssa->precommit_state(CORBA::string_dup((*iter).ext_id_.c_str())) + ? 1 : 0; + } + if(phase == 2) + ssa->commit_state(CORBA::string_dup((*iter).ext_id_.c_str())); + + break; // no need to search further in the app_set. + } + else + { + ACE_ERROR ((LM_ERROR, + "ReplicationManager_i::phase(): " + "Can't find SSA for objectid = %s, phase = %d\n", + (*iter).ext_id_.c_str(), phase)); + + break; // Don't search further in the app_set. + } + } + } + } + } + catch (::CORBA::Exception & ex) + { + ACE_ERROR ((LM_ERROR, + "ReplicationManager_i::finish_invocation(): " + "Exception raised while executing two-phase commit. phase = %d\n", + phase)); + precommit_success = false; + } + + return precommit_success; +} + void ReplicationManager_i::set_state (const ::CORBA::Any & state_value) { diff --git a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h index b9179a4a88d..e63790faa76 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h +++ b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h @@ -182,6 +182,8 @@ public: virtual void set_ranklist_constraints ( const RankListConstraints & constraints); + void finish_invocation(const char *); + void load_based_selection_algo (void); @@ -306,7 +308,7 @@ private: STRING_TO_STRING_LIST_MAP processid_backup_map_; STRING_TO_STRING_LIST_MAP processid_primary_map_; STRING_TO_STRING_LIST_MAP hostid_process_map_; - + RankList rank_list_; RankList enhanced_rank_list_; AGENT_LIST agent_list_; @@ -406,6 +408,7 @@ private: void send_failure_notice (const char * host, const ::FLARE::ApplicationList & object_ids); + bool phase(int, const char * object_id); }; #endif /* REPLICATION_MANAGER_H */ diff --git a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.idl b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.idl index 8476ce80009..7cdcf081460 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.idl +++ b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.idl @@ -38,4 +38,6 @@ interface ReplicationManager : ReplicatedApplication, FLARE::FaultNotifier void proc_failure (in string process_id); Object get_next (in string object_id); + + void finish_invocation(in string object_id); }; diff --git a/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent.idl b/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent.idl index d8ffec8db71..ec8936752f5 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent.idl +++ b/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent.idl @@ -22,6 +22,19 @@ interface StateSynchronizationAgent /// to all registered replicas. void state_changed (in string object_id); + /// Transfer the state of the give object_id to the agents in the replicas. + /// Invoked by primary SSA to SSA in replica servers. + void transfer_state (in string object_id, in any state_value); + + /// Send the state of the object_id to the other Agents. + /// Commit it only when ReplicationManager says commit. + /// Should be invoked only on the primary agents by the ReplicationManager. + boolean precommit_state (in string object_id); + + /// Commit the state with the replica object_id by calling set_stae. + /// Invoked by the ReplicationManager on the SSA in the replicas. + void commit_state (in string object_id); + /// Used by the ReplicationManager to update information about /// active replicas. void update_rank_list (in RankList replicas); diff --git a/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.cpp b/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.cpp index 821c4736a7c..52b4345c7dc 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.cpp +++ b/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.cpp @@ -79,14 +79,14 @@ StateSynchronizationAgent_i::~StateSynchronizationAgent_i (void) #endif /* FLARE_USES_DDS */ } -void + void StateSynchronizationAgent_i::state_changed (const char * object_id) { - /* - ACE_DEBUG ((LM_TRACE, + + ACE_DEBUG ((LM_EMERGENCY, "SSA::state_changed (%s) called.\n", object_id)); - */ + // get application reference ReplicatedApplication_var app; @@ -126,12 +126,12 @@ StateSynchronizationAgent_i::state_changed (const char * object_id) if (replica_map_.find (ACE_CString (object_id), replica_group) != 0) { - /* - ACE_ERROR ((LM_WARNING, + + ACE_ERROR ((LM_ERROR, "(%P|%t) SSA::state_changed () " "could not find replicas for the application %s\n", object_id)); - */ + return; } @@ -148,7 +148,7 @@ StateSynchronizationAgent_i::state_changed (const char * object_id) } catch (const CORBA::SystemException& ex) { - ACE_DEBUG ((LM_WARNING, + ACE_DEBUG ((LM_ERROR, "(%P|%t) SSA::state_changed () " "exception while contacting a " "server replica for %s.\n", @@ -157,6 +157,135 @@ StateSynchronizationAgent_i::state_changed (const char * object_id) } } + +::CORBA::Boolean StateSynchronizationAgent_i::precommit_state (const char * object_id) +{ + ACE_ERROR ((LM_ERROR, + "SSA::precommit_state (%s) called.\n", + object_id)); + + // get application reference + ReplicatedApplication_var app; + + if (application_map_.find (ACE_CString (object_id), + app) != 0) + { + ACE_ERROR ((LM_ERROR, "(%P|%t) SSA::precommit_state () " + "could not find application for object id %s\n", + object_id)); + return false; + } + + // Get state from the application. + CORBA::Any_var state; + + try + { + state = app->get_state (); + } + catch (const CORBA::SystemException& ex) + { + ACE_ERROR ((LM_ERROR, + "(%P|%t) SSA::precommit_state () " + "exception while calling the " + "get_state method for application " + "%s:\n" + "%s", + object_id, + ex._info ().c_str ())); + return false; + } + + // Send state to each element in the replica_map_. + ReplicaGroup replica_group; + + if (replica_map_.find (ACE_CString (object_id), + replica_group) != 0) + { + + ACE_ERROR ((LM_ERROR, + "(%P|%t) SSA::precommit_state () " + "could not find replicas for the application %s\n", + object_id)); + + return false; + } + + ReplicatedApplication_var replica; + + for (REPLICA_OBJECT_LIST::iterator it = replica_group.replicas.begin (); + it != replica_group.replicas.end (); + ++it) + { + try + { + CorbaStateUpdate * csu = dynamic_cast<CorbaStateUpdate *> ((*it).get()); + ReplicatedApplication_var rep_app = + ReplicatedApplication::_narrow(csu->application()); + StateSynchronizationAgent_var ssa_in_replica = rep_app->agent(); + ssa_in_replica->transfer_state(CORBA::string_dup(object_id), state.in ()); + } + catch (const CORBA::Exception& ex) + { + ACE_DEBUG ((LM_ERROR, + "(%P|%t) SSA::precommit_state () " + "exception while contacting a " + "SSA in server replica for %s.\n", + object_id)); + return false; + } + } + return true; +} + +void StateSynchronizationAgent_i::transfer_state ( + const char * object_id, + const ::CORBA::Any & state_value) +{ + ACE_ERROR ((LM_EMERGENCY, + "(%P|%t) SSA::transfer_state () " + "for the application %s\n", + object_id)); + this->precommit_state_ = state_value; +} + +void StateSynchronizationAgent_i::commit_state (const char * object_id) +{ + ACE_ERROR ((LM_EMERGENCY, + "(%P|%t) SSA::commit_state () " + "for the application %s\n", + object_id)); + + ReplicatedApplication_var app; + + if (application_map_.find (ACE_CString (object_id), + app) != 0) + { + ACE_ERROR ((LM_ERROR, + "(%P|%t) SSA::commit_state () " + "could not find application for object id %s\n", + object_id)); + return; + } + + try + { + app->set_state (this->precommit_state_); + } + catch (const CORBA::SystemException& ex) + { + ACE_DEBUG ((LM_ERROR, + "(%P|%t) SSA::commit_state () " + "exception while calling the " + "get_state method for application " + "%s:\n" + "%s", + object_id, + ex._info ().c_str ())); + return; + } +} + void StateSynchronizationAgent_i::update_rank_list (const RankList & rank_list) { @@ -243,8 +372,8 @@ StateSynchronizationAgent_i::register_application ( const char * object_id, ReplicatedApplication_ptr app) { - //ACE_DEBUG ((LM_TRACE, - // "SSA::register_application (%s) called.\n", object_id)); + ACE_ERROR ((LM_ERROR, + "SSA::register_application (%s) called.\n", object_id)); ACE_CString oid (object_id); diff --git a/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.h b/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.h index 08d1365cceb..c3bb37c381c 100644 --- a/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.h +++ b/TAO/orbsvcs/orbsvcs/LWFT/StateSynchronizationAgent_i.h @@ -33,7 +33,7 @@ class SSA_Export StateSynchronizationAgent_i { public: StateSynchronizationAgent_i (const std::string & host_id, - const std::string & process_id, + const std::string & process_id, bool use_corba = true); ~StateSynchronizationAgent_i (void); @@ -41,6 +41,16 @@ class SSA_Export StateSynchronizationAgent_i /// Implementation of the StateSynchronizationAgent interface. virtual void state_changed (const char * object_id); + /// Called by RM to initiate 2PC. + virtual CORBA::Boolean precommit_state (const char * object_id); + + /// Persist the state without commiting it by sending it to the + /// SSA in replica servers. + virtual void transfer_state (const char * object_id, const ::CORBA::Any & state_value); + + /// Commit the state. Called by RM. + virtual void commit_state (const char * object_id); + /// Implementation of the StateSynchronizationAgent interface. virtual void update_rank_list (const RankList & rank_list); @@ -57,8 +67,8 @@ class SSA_Export StateSynchronizationAgent_i typedef ACE_Refcounted_Auto_Ptr <StatefulObject, - ACE_Null_Mutex> - STATEFUL_OBJECT_PTR; + ACE_Null_Mutex> + STATEFUL_OBJECT_PTR; typedef std::list<STATEFUL_OBJECT_PTR> REPLICA_OBJECT_LIST; @@ -107,6 +117,9 @@ private: /// keeps references to all applications running in this process OBJECTID_APPLICATION_MAP application_map_; + + // pre-commit state + ::CORBA::Any precommit_state_; #ifdef FLARE_USES_DDS |