关于ACE的reconfigure为什么没有生效?
使用ACE动态服务配置类实现了几个动态库,加载的时候使用ACE_Service_config::open启动,通过-f指定了自定义的配置文件mysvc.conf, 该配置文件根据程序配置项去生成,重配置的时候根据修改后的配置项重新生成mysvc.conf,之后调用ACE_Service_config::reconfigure,生成的配置文件没有问题,先remove 服务名,再重新加载,但是却没有生效,因为即使删除了某个动态库的配置,还能查看到对应的服务存在,小弟怀疑是reconfigure的时候没有读mysvc.conf,看了半天ACE的代码也没什么头绪,望各位大侠帮忙解决! 什么操作系统环境?linux?
windows?
机制是有差别的。 linux,是多线程,reconfigure没有在主线程调用,这个有没有问题? 是否运行了Reactor事件循环 运行了,已经开始执行了reconfigure函数,能看到ACE_DEBUG的日志,但是动态库的fini确实没有执行,证明没去执行那个mysvc.conf 2009-04-17 08:06:00 gg913488771
可以调用
ACE_Service_Config::reconfigure();
进行刷新,如何生成的配置文件变了,调用reconfigure();
另外也可以向ACE_Service_Manager发送刷新请求,它内部会调ACE_Service_Config::reconfigure();
如果是多线程,注意了要主线程才会具有刷新权力,其它的调用刷新没有效果的
这是google上搜索到的一位仁兄的帖子,有这么一说法吗?
页:
[1]