diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2018-12-04 12:45:20 +0100 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2018-12-04 12:45:20 +0100 |
commit | 86bae273c777f0a57d2f4b92df86003882d12b68 (patch) | |
tree | f70b58dab6517b2af944cdb5a0a2301e9d4cdd4e /TAO/orbsvcs/ImplRepo_Service | |
parent | 0c62602a2fca96d202998151f57c3ddf2ed35f28 (diff) | |
download | ATCD-86bae273c777f0a57d2f4b92df86003882d12b68.tar.gz |
When invocation of spawn_pid fails log an error and throw back an exception to the locator with more helpful information
* TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp:
Diffstat (limited to 'TAO/orbsvcs/ImplRepo_Service')
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp index 8a278a675bd..004f62de9e5 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp @@ -555,10 +555,26 @@ ImR_Activator_i::start_server(const char* name, { ORBSVCS_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) ImR Activator: Notifying ImR that ") - ACE_TEXT ("<%C> has started.\n"), - name)); + ACE_TEXT ("<%C> has started with pid <%d>.\n"), + name, static_cast<int> (pid))); + } + try + { + this->locator_->spawn_pid (name, pid); + } + catch (const CORBA::Exception &ex) + { + if (debug_ > 1) + { + ex._tao_print_exception ("ImR_Activator_i::start_server"); + ORBSVCS_DEBUG ((LM_DEBUG, + ACE_TEXT ("(%P|%t) ImR Activator: From locator::spawn_pid for server <%C> pid <%d>\n"), + name, + static_cast<int> (pid))); + + throw ImplementationRepository::CannotActivate(CORBA::string_dup ("Invocation of spawn_pid failed")); + } } - this->locator_->spawn_pid (name, pid); } } } @@ -604,9 +620,9 @@ ImR_Activator_i::handle_exit_i (pid_t pid) { if (debug_ > 1) { + ex._tao_print_exception ("ImR_Activator_i::handle_exit_i"); ORBSVCS_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%P|%t) ImR Activator: caught <%C> from locator::child_death_pid for server <%C> pid <%d>\n"), - ex._name(), + ACE_TEXT ("(%P|%t) ImR Activator: from locator::child_death_pid for server <%C> pid <%d>\n"), name.c_str (), static_cast<int> (pid))); } |