int
My_Service::svc()
{
{
bool done = false;
while (!done) {
try {
if (orb_->orb_core()->has_shutdown() == false) {
orb_->run();
}
done = true;
} catch (const CORBA::SystemException& sysex) {
sysex._tao_print_exception(
"ERROR: My_Service::svc");
} catch (const CORBA::UserException& userex) {
userex._tao_print_exception(
"ERROR:My_Service::svc");
} catch (const CORBA::Exception& ex) {
ex._tao_print_exception(
"ERROR:My_Service::svc");
}
if (orb_->orb_core()->has_shutdown()) {
done = true;
} else {
orb_->orb_core()->reactor()->reset_reactor_event_loop();
}
}
}
return 0;
}
本文详细解析了CORBA服务在循环中如何通过ORB管理服务运行流程,并处理不同类型的异常情况,确保服务稳定运行。
3866

被折叠的 条评论
为什么被折叠?



