X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FLifeCycleCORBA%2FSALOME_LifeCycleCORBA.cxx;h=58d64b4b325cfb5b794fddd6355f5252df9f49da;hb=2e44426f61da038fedaa98b8c48e82d1dfcca29f;hp=1e4c010b707d20adf9151685ae51aba9e14a9f16;hpb=0fac7040be417aab7228a4e23904b4cf22a8dda4;p=modules%2Fkernel.git diff --git a/src/LifeCycleCORBA/SALOME_LifeCycleCORBA.cxx b/src/LifeCycleCORBA/SALOME_LifeCycleCORBA.cxx index 1e4c010b7..58d64b4b3 100644 --- a/src/LifeCycleCORBA/SALOME_LifeCycleCORBA.cxx +++ b/src/LifeCycleCORBA/SALOME_LifeCycleCORBA.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -42,14 +42,19 @@ #include #include "SALOME_LifeCycleCORBA.hxx" +#include "SALOME_ResourcesManager.hxx" +#include "SALOMESDS_DataServerManager.hxx" + #include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog) #include CORBA_CLIENT_HEADER(SALOME_Session) #include CORBA_CLIENT_HEADER(DSC_Engines) #include CORBA_CLIENT_HEADER(SALOME_Registry) #include CORBA_CLIENT_HEADER(SALOMEDS) +#include CORBA_CLIENT_HEADER(SALOME_SDS) #include CORBA_CLIENT_HEADER(Logger) #include CORBA_CLIENT_HEADER(SALOME_Launcher) +#include "SALOME_ResourcesManager.hxx" #include "SALOME_ContainerManager.hxx" #include "SALOME_Component_i.hxx" #include "SALOME_NamingService.hxx" @@ -421,7 +426,7 @@ Engines::ResourcesManager_ptr SALOME_LifeCycleCORBA::getResourcesManager() } //============================================================================= -/*! \brief shutdown all the SALOME servers except SALOME_Session_Server, omniNames and notifd +/*! \brief shutdown all the SALOME servers except SALOME_Session_Server and omniNames */ //============================================================================= @@ -502,8 +507,20 @@ void SALOME_LifeCycleCORBA::shutdownServers() #ifndef WIN32 nanosleep(&ts_req,0); #endif + // 4 ) Remote ScopeServer (the DataServer is hosted by SalomeLauncher shutdown right after) + try + { + CORBA::Object_var objDSM(_NS->Resolve(SALOMESDS::DataServerManager::NAME_IN_NS)); + SALOME::DataServerManager_var dsm(SALOME::DataServerManager::_narrow(objDSM)); + if ( !CORBA::is_nil(dsm) ) + dsm->shutdownScopes(); + } + catch(const CORBA::Exception& e) + { + // ignore and continue + } - // 4) SalomeLauncher + // 5) SalomeLauncher try { CORBA::Object_var objSL = _NS->Resolve("/SalomeLauncher"); @@ -521,7 +538,7 @@ void SALOME_LifeCycleCORBA::shutdownServers() nanosleep(&ts_req,0); #endif - // 5) Registry + // 6) Registry try { CORBA::Object_var objR = _NS->Resolve("/Registry"); @@ -534,20 +551,6 @@ void SALOME_LifeCycleCORBA::shutdownServers() // ignore and continue } - /* - // 6) Session - if ( !CORBA::is_nil( session ) ) { - try - { - session->Shutdown(); - } - catch(const CORBA::Exception& e) - { - // ignore and continue - } - } - */ - // 7) Logger int argc = 0; char *xargv = (char*)""; @@ -587,7 +590,7 @@ void SALOME_LifeCycleCORBA::shutdownServers() } //============================================================================= -/*! \brief shutdown omniNames and notifd +/*! \brief shutdown omniNames */ //============================================================================= @@ -611,8 +614,6 @@ void SALOME_LifeCycleCORBA::killOmniNames() #endif } - // NPAL 18309 (Kill Notifd) - std::string python_exe; python_exe = std::string("python"); @@ -624,9 +625,10 @@ void SALOME_LifeCycleCORBA::killOmniNames() if ( !portNumber.empty() ) { - std::string cmd = ("from killSalomeWithPort import killNotifdAndClean; "); - cmd += std::string("killNotifdAndClean(") + portNumber + "); "; - cmd = python_exe + std::string(" -c \"") + cmd +"\" > /dev/null 2> /dev/null"; + std::string cmd = ("from killSalomeWithPort import cleanApplication; "); + cmd += std::string("cleanApplication(") + portNumber + "); "; + //cmd = python_exe + std::string(" -c \"") + cmd +"\" > /dev/null 2> /dev/null"; + cmd = python_exe + std::string(" -c \"") + cmd +"\""; MESSAGE(cmd); system( cmd.c_str() ); } @@ -637,7 +639,8 @@ void SALOME_LifeCycleCORBA::killOmniNames() { std::string cmd = ("from PortManager import releasePort; "); cmd += std::string("releasePort(") + portNumber + "); "; - cmd = python_exe + std::string(" -c \"") + cmd +"\" > /dev/null 2> /dev/null"; + //cmd = python_exe + std::string(" -c \"") + cmd +"\" > /dev/null 2> /dev/null"; + cmd = python_exe + std::string(" -c \"") + cmd +"\""; MESSAGE(cmd); system( cmd.c_str() ); }