public bool Start(String serverID)
        {
            ViennaServer server = GetServer(serverID);

            if (server == null)
            {
                return(false);
            }
            if (server.GetServerThread().IsAlive)
            {
                return(true);
            }

            try
            {
                //	replace
                int index = m_servers.IndexOf(server);
                server = ViennaServer.Create(server.GetModel());
                if (server == null)
                {
                    m_servers.RemoveAt(index);
                }
                else
                {
                    m_servers[index] = server;
                }
                server.Start();
                server.SetPriority(ThreadPriority.Normal);

                Thread.Sleep(0);    //yeild other theads of lower priority to run
            }
            catch (Exception e)
            {
                log.Log(Level.SEVERE, "Server=" + serverID, e);
                return(false);
            }
            log.Info(server.ToString());
            //ViennaServerGroup.Get().Dump();
            if (server == null)
            {
                return(false);
            }
            return(server.GetServerThread().IsAlive);
        }       //	startIt
        private void RequeryAll()
        {
            if (m_servers.Count() > 0)
            {
                log.Config("Current #" + m_servers.Count());
            }

            //	Accounting
            if (doStartAcctProcessor)
            {
                MAcctProcessor[] acctModels = MAcctProcessor.GetActive(m_ctx);
                for (int i = 0; i < acctModels.Length; i++)
                {
                    MAcctProcessor pModel = acctModels[i];
                    ViennaServer   server = ViennaServer.Create(pModel);
                    AddServer(server, i);
                }
            }
            ////	Request

            if (doStartRequestProcessor)
            {
                MRequestProcessor[] requestModels = MRequestProcessor.GetActive(m_ctx);
                for (int i = 0; i < requestModels.Length; i++)
                {
                    MRequestProcessor pModel = requestModels[i];
                    ViennaServer      server = ViennaServer.Create(pModel);
                    AddServer(server, i);
                }
            }
            ////	Workflow

            if (doWorkflowProcessor)
            {
                MWorkflowProcessor[] workflowModels = MWorkflowProcessor.GetActive(m_ctx);
                for (int i = 0; i < workflowModels.Length; i++)
                {
                    MWorkflowProcessor pModel = workflowModels[i];
                    ViennaServer       server = ViennaServer.Create(pModel);
                    AddServer(server, i);
                }
            }

            ////	Alert Process (Notice and send mail) This is a test after exclusion
            if (doStartAlertProcessor)
            {
                MAlertProcessor[] alertModels = MAlertProcessor.GetActive(m_ctx);
                for (int i = 0; i < alertModels.Length; i++)
                {
                    //All Alert processor server to the server list
                    MAlertProcessor pModel = alertModels[i];
                    ViennaServer    server = ViennaServer.Create(pModel);
                    AddServer(server, i);
                }
            }

            ////	Scheduler
            if (doStartScheduler)
            {
                MScheduler[] schedulerModels = MScheduler.GetActive(m_ctx);
                for (int i = 0; i < schedulerModels.Length; i++)
                {
                    MScheduler   pModel = schedulerModels[i];
                    ViennaServer server = ViennaServer.Create(pModel);
                    AddServer(server, i);
                }
            }

            if (doInvokeService)
            {
                AddServer(new InvokeIISServiceProcessor(), 0);
            }

            log.Config("#" + m_servers.Count());
        }       //	requeryAll