Esempio n. 1
0
//停止服务
bool CLogonService::StopService()
{
	try
	{
		if (m_ServiceEngine.GetInterface()!=NULL) 
		{
			//停止服务
			m_ServiceEngine->StopService();
		
			//获取异步引擎
			IAsynchronismEngine * pIAsynchronismEngine=(IAsynchronismEngine *)m_ServiceEngine->GetAsynchronismEngine(IID_IAsynchronismEngine,VER_IAsynchronismEngine);
			ASSERT(pIAsynchronismEngine!=NULL);
			if (pIAsynchronismEngine==NULL) return false;

			//注销组件
			IAsynchronismEngineSink * pIAsynchronismEngineSink=GET_OBJECT_INTERFACE(m_CenterSocket,IAsynchronismEngineSink);
			pIAsynchronismEngine->UnRegisterAsynchronismEngineSink(pIAsynchronismEngineSink);
		}

		return true;
	}
	catch (LPCTSTR pszErrorMsg)
	{
		TraceEventString(pszErrorMsg,Level_Exception); 
		TraceEventString(TEXT("登录服务停止失败"),Level_Exception); 
	}
	catch (...)
	{ 
		TraceEventString(TEXT("登录服务停止失败"),Level_Exception); 
	}

	return false;
}
Esempio n. 2
0
//停止服务
bool CCenterService::EndService()
{
	try
	{
		if (m_ServiceEngine.GetInterface()!=NULL) 
		{
			m_ServiceEngine->EndService();
		}
		return true;
	}
	catch (LPCTSTR pszErrorMsg)
	{
		TraceEventString(pszErrorMsg,Level_Exception); 
		TraceEventString(TEXT("中心服务停止失败"),Level_Exception); 
	}
	catch (...)
	{ 
		TraceEventString(TEXT("中心服务停止失败"),Level_Exception); 
	}

	return false;
}
Esempio n. 3
0
//开始服务
bool CCenterService::BeginService()
{
	try
	{
		//变量定义
		bool bSuccess=false;

		//创建服务对象
		if (m_ServiceEngine.IsValid()==false)
		{
			if (m_ServiceEngine.CreateInstance()==false) 
			{
				throw m_ServiceEngine.GetErrorMessage();
			}
			if (m_pIEventService!=NULL) 
			{
				m_ServiceEngine->SetEventService(m_pIEventService);
			}

			//注册调度外挂服务
			IUnknownEx * pIAttemperEngine=GET_OBJECT_INTERFACE(m_AttemperSink,IUnknownEx);
			if (m_ServiceEngine->SetAttemperEngineSink(pIAttemperEngine)==false) 
			{
				TraceEventString(TEXT("注册调度外挂服务失败"),Level_Exception); 
				throw 0;
			}

			//注册数据库外挂服务
			IUnknownEx * pIDataBaseSink=GET_OBJECT_INTERFACE(m_DataBaseSink,IUnknownEx);
			if (m_ServiceEngine->SetDataBaseSink(pIDataBaseSink)==false) 
			{
				TraceEventString(TEXT("注册数据库外挂服务失败"),Level_Exception); 
				throw 0;
			}
		}

		//判断状态
		if (m_ServiceEngine->IsService()==true)
		{
			TraceEventString(TEXT("中心服务已经了启动了"),Level_Warning);
			return true;
		}

		//配置服务
		m_InitParamter.LoadInitParamter();
		if (m_DataBaseSink.InitDataBaseSink(&m_InitParamter,m_ServiceEngine.GetInterface())==false) 
		{
			throw 0;
		}
		if (m_AttemperSink.InitAttemperSink(&m_InitParamter,m_ServiceEngine.GetInterface())==false) 
		{
			throw 0;
		}
		if (m_ServiceEngine->InitServiceEngine(m_InitParamter.m_wListenPort,m_InitParamter.m_wMaxConnect)==false) 
		{
			throw 0;
		}

		//启动服务
		if (m_ServiceEngine->BeginService()==false) 
		{
			throw 0;
		}

		return true;
	}
	catch (LPCTSTR pszErrorMsg)
	{
		TraceEventString(pszErrorMsg,Level_Exception); 
		TraceEventString(TEXT("中心服务启动失败"),Level_Exception); 
		EndService();
	}
	catch (...)
	{ 
		TraceEventString(TEXT("中心服务启动失败"),Level_Exception); 
		EndService();
	}

	return false;
}
Esempio n. 4
0
//开始服务
bool CLogonService::StartService()
{
	try
	{
		//变量定义
		bool bSuccess=false;

		//创建服务对象
		if (m_ServiceEngine.GetInterface()==false)
		{
			if (m_ServiceEngine.CreateInstance()==false) throw m_ServiceEngine.GetErrorMessage();
			if (m_pIEventService!=NULL) m_ServiceEngine->SetEventService(m_pIEventService);

			//注册调度外挂服务
			IUnknownEx * pIAttemperEngine=GET_OBJECT_INTERFACE(m_AttemperSink,IUnknownEx);
			if (m_ServiceEngine->SetAttemperEngineSink(pIAttemperEngine)==false) throw 0;

			//注册数据库外挂服务
			IUnknownEx * pIDataBaseSink=GET_OBJECT_INTERFACE(m_DataBaseSink,IUnknownEx);
			if (m_ServiceEngine->SetDataBaseSink(pIDataBaseSink)==false) throw 0;
		}

		//判断状态
		if (m_ServiceEngine->IsService()==true)
		{
			TraceEventString(TEXT("登录服务已经了启动了"),Level_Warning);
			return true;
		}

		//配置服务
		m_InitParamter.LoadInitParamter();
		if (m_DataBaseSink.InitDataBaseSink(&m_InitParamter,m_ServiceEngine.GetInterface())==false) throw 0;
		if (m_AttemperSink.InitAttemperSink(&m_InitParamter,&m_CenterSocket,m_ServiceEngine.GetInterface())==false) throw 0;
		if (m_ServiceEngine->InitServiceEngine(m_InitParamter.m_wListenPort,m_InitParamter.m_wMaxConnect)==false) throw 0;

		//获取调度引擎
		IAttemperEngine * pIAttemperEngine=(IAttemperEngine *)m_ServiceEngine->GetAttemperEngine(IID_IAttemperEngine,VER_IAttemperEngine);
		ASSERT(pIAttemperEngine!=NULL);
		if (pIAttemperEngine==NULL) throw TEXT("调度引擎接口查询失败");

		//获取调度队列
		IQueueService * pIQueueService=(IQueueService *)pIAttemperEngine->GetQueueService(IID_IQueueService,VER_IQueueService);
		ASSERT(pIQueueService!=NULL);
		if (pIQueueService==NULL) throw TEXT("调度引擎队列服务接口查询失败");

		//获取异步引擎
		IAsynchronismEngine * pIAsynchronismEngine=(IAsynchronismEngine *)m_ServiceEngine->GetAsynchronismEngine(IID_IAsynchronismEngine,VER_IAsynchronismEngine);
		ASSERT(pIAsynchronismEngine!=NULL);
		if (pIAsynchronismEngine==NULL) throw TEXT("异步引擎队务接口查询失败");

		//中心连接
		if (m_CenterSocket.SetQueueService(pIQueueService)==false) throw 0;
		if (m_CenterSocket.SetAsynchronismEngine(pIAsynchronismEngine)==false) throw 0;

		//注册对象
		IAsynchronismEngineSink * pIAsynchronismEngineSink=GET_OBJECT_INTERFACE(m_CenterSocket,IAsynchronismEngineSink);
		if (pIAsynchronismEngine->RegisterAsynchronismEngineSink(pIAsynchronismEngineSink)==false) throw TEXT("中心连接异步对象注册失败");

		//启动服务
		if (m_ServiceEngine->StartService()==false) throw 0;

		return true;
	}
	catch (LPCTSTR pszErrorMsg)
	{
		TraceEventString(pszErrorMsg,Level_Exception); 
		TraceEventString(TEXT("登录服务启动失败"),Level_Exception); 
		StopService();
	}
	catch (...)
	{ 
		TraceEventString(TEXT("登录服务启动失败"),Level_Exception); 
		StopService();
	}

	return false;
}