(file) Return to cimserver.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Server

Diff for /pegasus/src/Server/cimserver.cpp between version 1.214 and 1.225

version 1.214, 2008/01/11 19:44:50 version 1.225, 2008/11/20 20:52:34
Line 45 
Line 45 
 // //
 // cimserver daemon=false // cimserver daemon=false
 // //
 // The daemon config property has no effect on windows operation.  // The daemon config property has no effect on windows operation or when
   // privilege separation is enabled.
 // //
 // To shutdown pegasus, use the -s option: // To shutdown pegasus, use the -s option:
 // //
Line 85 
Line 86 
 #include <Pegasus/Common/FileSystem.h> #include <Pegasus/Common/FileSystem.h>
 #include <Pegasus/Common/PegasusVersion.h> #include <Pegasus/Common/PegasusVersion.h>
 #include <Pegasus/Common/Logger.h> #include <Pegasus/Common/Logger.h>
   #include <Pegasus/Common/StringConversion.h>
 #include <Pegasus/Common/System.h> #include <Pegasus/Common/System.h>
 #include <Pegasus/Common/Tracer.h> #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/LanguageParser.h> #include <Pegasus/Common/LanguageParser.h>
Line 95 
Line 97 
 #include <Service/ServerShutdownClient.h> #include <Service/ServerShutdownClient.h>
 #include <Service/ServerRunStatus.h> #include <Service/ServerRunStatus.h>
  
 #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)  #if defined(PEGASUS_OS_ZOS)
 #include <Pegasus/Common/SetFileDescriptorToEBCDICEncoding.h> #include <Pegasus/Common/SetFileDescriptorToEBCDICEncoding.h>
 #include <Service/ARM_zOS.h> #include <Service/ARM_zOS.h>
 # ifdef PEGASUS_ZOS_SECURITY # ifdef PEGASUS_ZOS_SECURITY
Line 446 
Line 448 
     if ( setEBCDICEncoding(STDOUT_FILENO)==-1 ||     if ( setEBCDICEncoding(STDOUT_FILENO)==-1 ||
          setEBCDICEncoding(STDERR_FILENO)==-1 )          setEBCDICEncoding(STDERR_FILENO)==-1 )
     {     {
        PEG_TRACE_CSTRING(TRC_SERVER,Tracer::LEVEL4,         PEG_TRACE_CSTRING(TRC_SERVER,Tracer::LEVEL1,
            "Coud not set stdout or stderr to EBCDIC encoding.");            "Coud not set stdout or stderr to EBCDIC encoding.");
     }     }
     // Need to initialize timezone information in the     // Need to initialize timezone information in the
Line 468 
Line 470 
     const char *tmp = getenv("PEGASUS_HOME");     const char *tmp = getenv("PEGASUS_HOME");
     pegasusHome = (tmp == 0) ? PASE_DEFAULT_PEGASUS_HOME : tmp;     pegasusHome = (tmp == 0) ? PASE_DEFAULT_PEGASUS_HOME : tmp;
 # elif !defined(PEGASUS_USE_RELEASE_DIRS) || \ # elif !defined(PEGASUS_USE_RELEASE_DIRS) || \
     defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)      defined(PEGASUS_OS_ZOS)
     const char* tmp = getenv("PEGASUS_HOME");     const char* tmp = getenv("PEGASUS_HOME");
  
     if (tmp)     if (tmp)
Line 508 
Line 510 
         for (int i = 1; i < argc; )         for (int i = 1; i < argc; )
         {         {
             const char* arg = argv[i];             const char* arg = argv[i];
             if (String::equal(arg,"--help"))              if (strcmp(arg, "--help") == 0)
             {             {
                     PrintHelp(argv[0]);                     PrintHelp(argv[0]);
                   Executor::daemonizeExecutor();
                     exit(0);                     exit(0);
             }             }
             else if (String::equal(arg,"--version"))              else if (strcmp(arg, "--version") == 0)
             {             {
                 cout << _cimServerProcess->getCompleteVersion() << endl;                 cout << _cimServerProcess->getCompleteVersion() << endl;
                   Executor::daemonizeExecutor();
                 exit(0);                 exit(0);
             }             }
             // Check for -option             // Check for -option
Line 531 
Line 535 
                     strlen(option) == 1)                     strlen(option) == 1)
                 {                 {
                     cout << _cimServerProcess->getCompleteVersion() << endl;                     cout << _cimServerProcess->getCompleteVersion() << endl;
                       Executor::daemonizeExecutor();
                     exit(0);                     exit(0);
                 }                 }
                 //                 //
Line 540 
Line 545 
                         (strlen(option) == 1))                         (strlen(option) == 1))
                 {                 {
                     PrintHelp(argv[0]);                     PrintHelp(argv[0]);
                       Executor::daemonizeExecutor();
                     exit(0);                     exit(0);
                 }                 }
 #if !defined(PEGASUS_USE_RELEASE_DIRS) #if !defined(PEGASUS_USE_RELEASE_DIRS)
Line 558 
Line 564 
                             "Missing argument for option -$0",                             "Missing argument for option -$0",
                             opt);                             opt);
                         cout << MessageLoader::getMessage(parms) << endl;                         cout << MessageLoader::getMessage(parms) << endl;
                         exit(0);                          exit(1);
                     }                     }
  
                     memmove(&argv[i], &argv[i + 2], (argc-i-1) * sizeof(char*));                     memmove(&argv[i], &argv[i + 2], (argc-i-1) * sizeof(char*));
Line 602 
Line 608 
                             "Duplicate shutdown option specified.");                             "Duplicate shutdown option specified.");
  
                         cout << MessageLoader::getMessage(parms) << endl;                         cout << MessageLoader::getMessage(parms) << endl;
                         exit(0);                          exit(1);
                     }                     }
  
                     shutdownOption = true;                     shutdownOption = true;
Line 711 
Line 717 
         MessageLoader::setPegasusMsgHome(ConfigManager::getHomedPath(         MessageLoader::setPegasusMsgHome(ConfigManager::getHomedPath(
             ConfigManager::getInstance()->getCurrentValue("messageDir")));             ConfigManager::getInstance()->getCurrentValue("messageDir")));
  
   #if !defined(PEGASUS_USE_SYSLOGS)
           String logsDirectory = ConfigManager::getHomedPath(
               configManager->getCurrentValue("logdir"));
   
           // Set up the Logger.  This does not open the logs.
           // Might be more logical to clean before set.
           Logger::setHomeDirectory(logsDirectory);
   #endif
   
   
 #ifdef PEGASUS_OS_PASE #ifdef PEGASUS_OS_PASE
           /* write job log to tell where pegasus log is.*/
           if(logsDirectory.size() > 0)
               // this function only can be found in PASE environment
               logPegasusDir2joblog(logsDirectory.getCString());
           else
               logPegasusDir2joblog(".");
   
     // set ccsid to unicode for entire job     // set ccsid to unicode for entire job
     // ccsid is globolization mechanism in PASE environment     // ccsid is globolization mechanism in PASE environment
     if (_SETCCSID(1208) == -1)     if (_SETCCSID(1208) == -1)
Line 721 
Line 744 
                 "Failed to set CCSID, server will stop.");                 "Failed to set CCSID, server will stop.");
         cerr << MessageLoader::getMessage(parms) << endl;         cerr << MessageLoader::getMessage(parms) << endl;
         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::FATAL,         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::FATAL,
                 "src.Server.cimserver.SET_CCSID_ERROR.PEGASUS_OS_PASE",                      parms);
                 "Failed to set CCSID, server will stop.\n");  
         exit (1);         exit (1);
     }     }
  
     char fullJobName[29];     char fullJobName[29];
     umeGetJobName(fullJobName, true);     umeGetJobName(fullJobName, true);
     Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,          Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER,
                   Logger::INFORMATION,
                   MessageLoaderParms(
             "src.Server.cimserver.SERVER_JOB_NAME.PEGASUS_OS_PASE",             "src.Server.cimserver.SERVER_JOB_NAME.PEGASUS_OS_PASE",
             "CIM Server's Job Name is: $0", fullJobName);                      "CIM Server's Job Name is: $0", fullJobName));
 #endif #endif
  
   #ifdef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET
           // Make sure at least one connection is enabled
   
     Boolean enableHttpConnection = ConfigManager::parseBooleanValue(     Boolean enableHttpConnection = ConfigManager::parseBooleanValue(
         configManager->getCurrentValue("enableHttpConnection"));         configManager->getCurrentValue("enableHttpConnection"));
     Boolean enableHttpsConnection = ConfigManager::parseBooleanValue(     Boolean enableHttpsConnection = ConfigManager::parseBooleanValue(
         configManager->getCurrentValue("enableHttpsConnection"));         configManager->getCurrentValue("enableHttpsConnection"));
  
     // Make sure at least one connection is enabled  
 #ifdef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET  
     if (!enableHttpConnection && !enableHttpsConnection)     if (!enableHttpConnection && !enableHttpsConnection)
     {     {
         //l10n  
         //Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,  
             //"Neither HTTP nor HTTPS connection is enabled.  "  
             //"CIMServer will not be started.");  
         Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,  
             "src.Server.cimserver.HTTP_NOT_ENABLED_SERVER_NOT_STARTING",  
             "Neither HTTP nor HTTPS connection is enabled."  
             "  CIMServer will not be started.");  
         //cerr << "Neither HTTP nor HTTPS connection is enabled.  "  
             //"CIMServer will not be started." << endl;  
         MessageLoaderParms parms(         MessageLoaderParms parms(
                 "src.Server.cimserver.HTTP_NOT_ENABLED_SERVER_NOT_STARTING",                 "src.Server.cimserver.HTTP_NOT_ENABLED_SERVER_NOT_STARTING",
                 "Neither HTTP nor HTTPS connection is enabled."                 "Neither HTTP nor HTTPS connection is enabled."
                 "  CIMServer will not be started.");                 "  CIMServer will not be started.");
               Logger::put_l(
                   Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
                   parms);
         cerr << MessageLoader::getMessage(parms) << endl;         cerr << MessageLoader::getMessage(parms) << endl;
         return(1);              return 1;
     }     }
 #endif #endif
   
         //         //
         // Check to see if we should start Pegasus as a daemon         // Check to see if we should start Pegasus as a daemon
         //         //
         daemonOption = ConfigManager::parseBooleanValue(         daemonOption = ConfigManager::parseBooleanValue(
             configManager->getCurrentValue("daemon"));             configManager->getCurrentValue("daemon"));
  
 #if !defined(PEGASUS_USE_SYSLOGS)          if ((Executor::detectExecutor() == 0) && (daemonOption == false))
         String logsDirectory = ConfigManager::getHomedPath(          {
             configManager->getCurrentValue("logdir"));              MessageLoaderParms parms(
                   "src.Server.cimserver.PRIVSEP_REQUIRES_DAEMON",
         // Set up the Logger.  This does not open the logs.                  "Warning: The configuration setting daemon=false is ignored "
         // Might be more logical to clean before set.                      "with privilege separation enabled.");
         Logger::setHomeDirectory(logsDirectory);              cerr << MessageLoader::getMessage(parms) << endl;
               daemonOption = true;
 # ifdef PEGASUS_OS_PASE          }
     /* write job log to tell where pegasus log is.*/  
     if(logsDirectory.size() > 0)  
         // this function only can be found in PASE environment  
         logPegasusDir2joblog(logsDirectory.getCString());  
     else  
         logPegasusDir2joblog(".");  
 # endif  
 #endif  
  
         //         //
         // Check to see if we need to shutdown CIMOM         // Check to see if we need to shutdown CIMOM
Line 816 
Line 827 
     {     {
         MessageLoaderParms parms("src.Server.cimserver.SERVER_NOT_STARTED",         MessageLoaderParms parms("src.Server.cimserver.SERVER_NOT_STARTED",
             "cimserver not started: $0", e.getMessage());             "cimserver not started: $0", e.getMessage());
         Logger::put(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,          Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,
             MessageLoader::getMessage(parms));              parms);
         cerr << MessageLoader::getMessage(parms) << endl;         cerr << MessageLoader::getMessage(parms) << endl;
  
         return 1;         return 1;
     }     }
  
 #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) && defined(PEGASUS_ZOS_SECURITY)  #if defined(PEGASUS_OS_ZOS) && defined(PEGASUS_ZOS_SECURITY)
     startupCheckBPXServer(true);     startupCheckBPXServer(true);
     startupCheckProfileCIMSERVclassWBEM();     startupCheckProfileCIMSERVclassWBEM();
     startupEnableMSC();     startupEnableMSC();
Line 865 
Line 876 
     catch (InvalidAcceptLanguageHeader& e)     catch (InvalidAcceptLanguageHeader& e)
     {     {
         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,
               MessageLoaderParms(
             "src.Server.cimserver.FAILED_TO_SET_PROCESS_LOCALE",             "src.Server.cimserver.FAILED_TO_SET_PROCESS_LOCALE",
             "Could not convert the system process locale into a valid "             "Could not convert the system process locale into a valid "
                 "AcceptLanguage format.");                      "AcceptLanguage format."));
         Logger::put(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,         Logger::put(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,
             e.getMessage());             e.getMessage());
     }     }
Line 909 
Line 921 
             MessageLoaderParms parms(             MessageLoaderParms parms(
                 "src.Server.cimserver.UNABLE_TO_START_SERVER_ALREADY_RUNNING",                 "src.Server.cimserver.UNABLE_TO_START_SERVER_ALREADY_RUNNING",
                 "Unable to start CIMServer. CIMServer is already running.");                 "Unable to start CIMServer. CIMServer is already running.");
             Logger::put(              Logger::put_l(
                 Logger::ERROR_LOG, System::CIMSERVER, Logger::INFORMATION,                 Logger::ERROR_LOG, System::CIMSERVER, Logger::INFORMATION,
                 MessageLoader::getMessage(parms));                  parms);
             cerr << MessageLoader::getMessage(parms) << endl;             cerr << MessageLoader::getMessage(parms) << endl;
  
             if (daemonOption)             if (daemonOption)
Line 967 
Line 979 
             MessageLoaderParms parms(             MessageLoaderParms parms(
                 "src.Server.cimserver.IPV6_STACK_NOT_ACTIVE",                 "src.Server.cimserver.IPV6_STACK_NOT_ACTIVE",
                 "IPv6 stack is not active, using IPv4 socket.");                 "IPv6 stack is not active, using IPv4 socket.");
             Logger::put(              Logger::put_l(
                 Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,                 Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
                 MessageLoader::getMessage(parms));                  parms);
 #if defined(PEGASUS_DEBUG) #if defined(PEGASUS_DEBUG)
             cout << MessageLoader::getMessage(parms) << endl;             cout << MessageLoader::getMessage(parms) << endl;
 #endif #endif
Line 1026 
Line 1038 
                 _cimServer->addAcceptor(HTTPAcceptor::IPV4_CONNECTION,                 _cimServer->addAcceptor(HTTPAcceptor::IPV4_CONNECTION,
                     portNumberHttp, false);                     portNumberHttp, false);
             }             }
               // The port number is converted to a string to avoid the
               //  addition of localized characters (e.g., "5,988").
               char scratchBuffer[22];
               Uint32 n;
               const char * portNumberHttpStr = Uint32ToString(
                   scratchBuffer, portNumberHttp, n);
             MessageLoaderParms parms(             MessageLoaderParms parms(
                 "src.Server.cimserver.LISTENING_ON_HTTP_PORT",                 "src.Server.cimserver.LISTENING_ON_HTTP_PORT",
                 "Listening on HTTP port $0.", portNumberHttp);                  "Listening on HTTP port $0.", portNumberHttpStr);
             Logger::put(              Logger::put_l(
                 Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,                 Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
                 MessageLoader::getMessage(parms));                  parms);
 #if defined(PEGASUS_DEBUG) #if defined(PEGASUS_DEBUG)
             cout << MessageLoader::getMessage(parms) << endl;             cout << MessageLoader::getMessage(parms) << endl;
 #endif #endif
Line 1073 
Line 1090 
                 _cimServer->addAcceptor(HTTPAcceptor::IPV4_CONNECTION,                 _cimServer->addAcceptor(HTTPAcceptor::IPV4_CONNECTION,
                     portNumberHttps, true);                     portNumberHttps, true);
             }             }
               // The port number is converted to a string to avoid the
               //  addition of localized characters (e.g., "5,989").
               char scratchBuffer[22];
               Uint32 n;
               const char * portNumberHttpsStr = Uint32ToString(
                   scratchBuffer, portNumberHttps, n);
             MessageLoaderParms parms(             MessageLoaderParms parms(
                 "src.Server.cimserver.LISTENING_ON_HTTPS_PORT",                 "src.Server.cimserver.LISTENING_ON_HTTPS_PORT",
                 "Listening on HTTPS port $0.", portNumberHttps);                  "Listening on HTTPS port $0.", portNumberHttpsStr);
             Logger::put(              Logger::put_l(
                 Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,                 Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
                 MessageLoader::getMessage(parms));                  parms);
 #if defined(PEGASUS_DEBUG) #if defined(PEGASUS_DEBUG)
             cout << MessageLoader::getMessage(parms) << endl;             cout << MessageLoader::getMessage(parms) << endl;
 #endif #endif
Line 1091 
Line 1114 
             MessageLoaderParms parms(             MessageLoaderParms parms(
                 "src.Server.cimserver.LISTENING_ON_LOCAL",                 "src.Server.cimserver.LISTENING_ON_LOCAL",
                 "Listening on local connection socket.");                 "Listening on local connection socket.");
             Logger::put(              Logger::put_l(
                 Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,                 Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
                 MessageLoader::getMessage(parms));                  parms);
 # if defined(PEGASUS_DEBUG) # if defined(PEGASUS_DEBUG)
             cout << MessageLoader::getMessage(parms) << endl;             cout << MessageLoader::getMessage(parms) << endl;
 # endif # endif
Line 1116 
Line 1139 
         // Put server started message to the logger         // Put server started message to the logger
         Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER,         Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER,
             Logger::INFORMATION,             Logger::INFORMATION,
               MessageLoaderParms(
             "src.Server.cimserver.STARTED_VERSION",             "src.Server.cimserver.STARTED_VERSION",
             "Started $0 version $1.",             "Started $0 version $1.",
             _cimServerProcess->getProductName(),             _cimServerProcess->getProductName(),
             _cimServerProcess->getCompleteVersion());                  _cimServerProcess->getCompleteVersion()));
  
 #if defined(PEGASUS_OS_TYPE_UNIX) && !defined(PEGASUS_OS_ZOS) #if defined(PEGASUS_OS_TYPE_UNIX) && !defined(PEGASUS_OS_ZOS)
         if (daemonOption && !debugOutputOption)         if (daemonOption && !debugOutputOption)
Line 1139 
Line 1163 
     {     {
         MessageLoaderParms parms("src.Server.cimserver.SERVER_NOT_STARTED",         MessageLoaderParms parms("src.Server.cimserver.SERVER_NOT_STARTED",
             "cimserver not started: $0", e.getMessage());             "cimserver not started: $0", e.getMessage());
         Logger::put(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,          Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,
             MessageLoader::getMessage(parms));              parms);
         cerr << MessageLoader::getMessage(parms) << endl;         cerr << MessageLoader::getMessage(parms) << endl;
  
         //         //
Line 1157 
Line 1181 
  
     try     try
     {     {
 #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)  #if defined(PEGASUS_OS_ZOS)
  
         // ARM is a z/OS internal restart facility.         // ARM is a z/OS internal restart facility.
         // This is a z/OS specific change.         // This is a z/OS specific change.
Line 1170 
Line 1194 
  
 #endif #endif
  
   #ifdef PEGASUS_ENABLE_SLP
           _cimServer->startSLPProvider();
   #endif
         //         //
         // Loop to call CIMServer's runForever() method until CIMServer         // Loop to call CIMServer's runForever() method until CIMServer
         // has been shutdown         // has been shutdown
Line 1183 
Line 1210 
         // normal termination         // normal termination
         //         //
  
 #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)  #if defined(PEGASUS_OS_ZOS)
  
         // ARM is a z/OS internal restart facility.         // ARM is a z/OS internal restart facility.
         // This is a z/OS specific change.         // This is a z/OS specific change.
Line 1194 
Line 1221 
 #endif #endif
  
         // Put server shutdown message to the logger         // Put server shutdown message to the logger
         Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER,          Logger::put_l(
             Logger::INFORMATION, "src.Server.cimserver.STOPPED",              Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
             "$0 stopped.", _cimServerProcess->getProductName());              MessageLoaderParms(
                   "src.Server.cimserver.STOPPED",
                   "$0 stopped.", _cimServerProcess->getProductName()));
     }     }
     catch (Exception& e)     catch (Exception& e)
     {     {
Line 1204 
Line 1233 
             "src.Server.cimserver.ERROR",             "src.Server.cimserver.ERROR",
             "Error: $0",             "Error: $0",
             e.getMessage());             e.getMessage());
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,          Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
             MessageLoader::getMessage(parms));              parms);
         cerr << MessageLoader::getMessage(parms) << endl;         cerr << MessageLoader::getMessage(parms) << endl;
  
         deleteCIMServer();         deleteCIMServer();


Legend:
Removed from v.1.214  
changed lines
  Added in v.1.225

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2