omn​​iORBpy 终止服务器

Posted

技术标签:

【中文标题】omn​​iORBpy 终止服务器【英文标题】:omniORBpy terminating the server 【发布时间】:2011-12-07 16:22:28 【问题描述】:

我正在开发使用omniORBpy 的python 客户端-服务器应用程序,我正在尝试弄清楚如何正确终止服务器。

我有这个方法:

def shutdown(self):
    print "---------------------------------------"
    print "shutdown"
    orb.shutdown(False)
    quit()

但是当我从调用上述函数的客户端发送消息时,会出现此错误:

---------------------------------------
shutdown
omniORB: Caught an unexpected Python exception during up-call.
terminate called after throwing an instance of 'omni_thread_fatal'
Aborted

有人知道我需要做什么才能正确地结束服务器吗?

【问题讨论】:

【参考方案1】:

您不能关闭服务器(即使不是在单向调用中)。您必须更改“标志”以便经常检查它。如果已设置,请关闭服务器。

例如,在伪代码中:

def shutdown():
  self.shutdown = True

def run():
  while not self.shutdown:
     workloop()

或者类似的东西。换句话说;不要在远程调用中杀死服务器。

【讨论】:

【参考方案2】:

您是否将关闭方法设为 IDL 中的单向方法?

【讨论】:

是的,我做到了:oneway void shutdownDFS();

以上是关于omn​​iORBpy 终止服务器的主要内容,如果未能解决你的问题,请参考以下文章

omn​​iORB C++ 服务器,运行应用程序的 Java 客户端问题

text omn​​ifocus.taskpaper

omn​​et++ 中的 TKenv 无法运行

omn​​iORB::MaxMessageSize 在omni 4

omn​​ipay paypal express 没有返回地址

omn​​ikey 3121 windows 动态 emv 读卡器和写卡器