我在Linux中使用TAO的通知服务实现了一个发布-订阅服务器对。有两个服务器E1和E2。E2订阅了新闻类型(比方说1 ),E1订阅了新类型(比方说2 )。E1发布了类型1的新闻,然后E2进行了一些计算,并发布了E1获得的新闻类型2的结果。这个循环还在继续。事件的类型为CosNotification::StructuredEvent。问题是,系统在两个服务器的终端执行了一段时间后,会给出很多错误消息。
TAO (2723|139817071765312) - ServerRequest::tao_send_reply_exception,无法发送异常回复
我是TAO (以及CORBA)的初学者,所以我不确定这个问题是不是因为线程。如果我在E1、E2或两端都使用以下svc.conf,事件通信会变得非常慢:
static Server_Strategy_Factory "-ORBConcurrency thread connection“static Client_Strategy_Factory "-ORBWaitStrategy rw -ORBTransportMuxStrategy exclusive -ORBConnectStrategy blocked 1”static Resource_Factory "-ORBFlushingStrategy blocking“
我从TAO的网站上复制了上面的选项,让每个连接有一个线程,认为这个错误可能是由于达到线程限制而导致的。此外,我还尝试在E1和E2的两端使用-ORBConcurrency每连接线程数作为命令行选项。这会导致一些CORBA异常无法启动服务器。以下是我用来运行我的系统的命令,它给出了ServerRequest::tao_send_reply_exception,could exception reply messages after the:
tao_cosnaming -ORBEndPoint iiop:localhost:12345 -ORBDaemon //启动名称服务tao_cosnotification -ORBDebugLevel 10 -ORBInitRef -ORBInitRef -ORBDaemon //启动通知服务。/ E1 corbaloc:iiop:localhost:12345/ name服务//启动E1。/ E2 corbaloc:iiop:localhost:12345/name服务//启动E2
有人能建议一下这里发生了什么以及如何处理这个问题吗?
发布于 2014-02-04 16:09:02
某些部分在将异常发送回CORBA调用的调用方时出现问题。这可能是任何正在运行的进程。尝试在将"-ORBDebugLevel 10 -ORBVerboseLogging 2“添加到命令行的情况下运行,您可以选择使用"-ORBLogFile foo.txt”将日志重定向到一个文件(对每个进程使用单独的文件名)。这应该会告诉你更多,哪个进程在发回回复时出现了问题,以及更多关于原因的细节。
https://stackoverflow.com/questions/21545577
复制相似问题