diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager_Impl.cpp')
-rw-r--r-- | TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager_Impl.cpp | 109 |
1 files changed, 97 insertions, 12 deletions
diff --git a/TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager_Impl.cpp b/TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager_Impl.cpp index 4f9ce7f9405..06ba9fb8276 100644 --- a/TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager_Impl.cpp +++ b/TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager_Impl.cpp @@ -48,8 +48,15 @@ namespace CIAO // No need to create a new DAM. Hence pass the // reference that is already created. // - if (this->map_.is_plan_available (plan.UUID.in ())) + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) calling this->man_.is_plan_available()...\n")); + if (this->map_.is_plan_available (plan.UUID.in ())) { + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) Plan is already available; " + "calling this->man_.fetch_dam_reference()...\n")); + return this->map_.fetch_dam_reference (plan.UUID.in ()); + } + else + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) Plan wasn't already available\n")); // We are about to begin working on a new DeploymentPlan. // Create a DAM servant, which will be populated @@ -60,6 +67,7 @@ namespace CIAO // Create a new Domain Application Manager servant // to be sent back to the Plan Launcher. // + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) About to instantiate CIAO::DomainApplicationManager_Impl\n")); ACE_NEW_THROW_EX ( dam_servant, CIAO::DomainApplicationManager_Impl ( @@ -70,6 +78,7 @@ namespace CIAO plan, this->init_file_.c_str ()), CORBA::NO_MEMORY ()); + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) Instantiated CIAO::DomainApplicationManager_Impl\n")); // Sanity check for NULL pointer // Should we throw an exception here? @@ -88,6 +97,7 @@ namespace CIAO // plans, so that those plans can be sent off to individual // Node Application Managers. // + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) About to init...\n")); dam_servant->init (ACE_ENV_SINGLE_ARG_PARAMETER); // This is a wrong exception to be thrown here. @@ -97,6 +107,7 @@ namespace CIAO // ACE_CHECK_RETURN (::Deployment::DomainApplicationManager::_nil ()); + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) About to set uuid on DAM...\n")); dam_servant->set_uuid (plan.UUID.in ()); Deployment::DomainApplicationManager_var dam = @@ -107,6 +118,7 @@ namespace CIAO this->map_.bind_dam_reference ( plan.UUID.in (), Deployment::DomainApplicationManager::_duplicate (dam.in ())); + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) Bound DAM reference...\n")); // Return the ApplicationManager instance return dam._retn (); @@ -146,7 +158,7 @@ namespace CIAO ACE_TRY_CHECK; // What if we still have components running within this plan? - // + // (void) this->map_.unbind_dam (plan->UUID.in ()); // Where does the POA deactivate happen? @@ -205,7 +217,7 @@ namespace CIAO CORBA::ULong inst_lenth = plan->instance.length (); for (CORBA::ULong i = 0; i < inst_lenth; ++i) { - if (this->is_component_running (plan->instance[i].name.in (), + if (this->is_component_running (plan->instance[i].name.in (), plan_uuid)) return; } @@ -249,7 +261,7 @@ namespace CIAO ACE_CHECK; } - void + void Execution_Manager_Impl::perform_redeployment ( const Deployment::DeploymentPlan & plan ACE_ENV_ARG_DECL) @@ -263,7 +275,7 @@ namespace CIAO ::Components::RemoveFailure)) { CIAO_TRACE ("CIAO::Execution_Manager_Impl::perform_redeployment"); - + ACE_DEBUG ((LM_DEBUG, "CIAO (%P|%t) Dynamic Redeployment: " "invoked CIAO::Execution_Manager_Impl::perform_redeployment \n")); @@ -299,7 +311,7 @@ namespace CIAO ACE_CHECK; } - Deployment::DeploymentPlan * + Deployment::DeploymentPlan * Execution_Manager_Impl::getPlan (const char * plan_uuid ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((::CORBA::SystemException)) @@ -339,10 +351,10 @@ namespace CIAO ::CORBA::SystemException, ::Deployment::InvalidConnection)) { - ACE_DEBUG ((LM_ERROR, + ACE_DEBUG ((LM_ERROR, "Execution_Manage::finalizing global bindings.\n")); - // Find the NodeApplication hosting the component, and then call + // Find the NodeApplication hosting the component, and then call // <finishLaunch> on it ACE_TRY { @@ -376,7 +388,80 @@ namespace CIAO ACE_ENDTRY; } - Deployment::NodeApplication_ptr + void + Execution_Manager_Impl::passivate_shared_components ( + const Component_Binding_Info & binding) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + Deployment::StartError)) + { + ACE_DEBUG ((LM_ERROR, + "Execution_Manage::passivate shared components.\n")); + + // Find the NodeApplication hosting the component, and then call + // <finishLaunch> on it + ACE_TRY + { + Deployment::NodeApplication_var + node_app = this->find_node_application (binding); + + if (CORBA::is_nil (node_app.in ())) + { + ACE_DEBUG ((LM_ERROR, + "Execution_Manager_Impl::passivate_shared_components - " + "nil NodeApplication object reference.\n")); + ACE_THROW (Deployment::StartError ()); + } + + node_app->passivate_component (binding.name_.c_str ()); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Execution_Manager_Impl::passivate_shared_components\t\n"); + ACE_THROW (Deployment::StartError ()); + } + ACE_ENDTRY; + } + + void + Execution_Manager_Impl::activate_shared_components ( + const Component_Binding_Info & binding) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + Deployment::StartError)) + { + ACE_DEBUG ((LM_ERROR, + "Execution_Manage::activate shared components.\n")); + + // Find the NodeApplication hosting the component, and then call + // <ciao_activate> on it + ACE_TRY + { + Deployment::NodeApplication_var + node_app = this->find_node_application (binding); + + if (CORBA::is_nil (node_app.in ())) + { + ACE_DEBUG ((LM_ERROR, + "Execution_Manager_Impl::activate_shared_components - " + "nil NodeApplication object reference.\n")); + ACE_THROW (Deployment::StartError ()); + } + + node_app->activate_component (binding.name_.c_str ()); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Execution_Manager_Impl::passivate_shared_components\t\n"); + ACE_THROW (Deployment::StartError ()); + } + ACE_ENDTRY; + } + + + Deployment::NodeApplication_ptr Execution_Manager_Impl:: find_node_application (const Component_Binding_Info & binding) ACE_THROW_SPEC (( @@ -399,7 +484,7 @@ namespace CIAO // Find the NA based on the NodeName field of the binding // This is a CORBA call on the DAM - Deployment::NodeApplication_var + Deployment::NodeApplication_var node_app = dam->get_node_app (binding.node_.c_str ()); if (CORBA::is_nil (node_app.in ())) @@ -414,14 +499,14 @@ namespace CIAO return node_app._retn (); } - void + void Execution_Manager_Impl:: add_shared_component (const Component_Binding_Info & comp) { this->shared_components_.insert (comp); } - void + void Execution_Manager_Impl:: remove_shared_component (const Component_Binding_Info & comp) { |