找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3820|回复: 5

关于ACE的reconfigure为什么没有生效?

[复制链接]
发表于 2010-3-22 10:35:23 | 显示全部楼层 |阅读模式
使用ACE动态服务配置类实现了几个动态库,加载的时候使用ACE_Service_config::open启动,通过-f指定了自定义的配置文件mysvc.conf, 该配置文件根据程序配置项去生成,重配置的时候根据修改后的配置项重新生成mysvc.conf,之后调用ACE_Service_config::reconfigure,生成的配置文件没有问题,先remove 服务名,再重新加载,但是却没有生效,因为即使删除了某个动态库的配置,还能查看到对应的服务存在,小弟怀疑是reconfigure的时候没有读mysvc.conf,看了半天ACE的代码也没什么头绪,望各位大侠帮忙解决!
发表于 2010-3-22 11:56:18 | 显示全部楼层
什么操作系统环境?
linux?
windows?
机制是有差别的。
 楼主| 发表于 2010-3-22 13:44:05 | 显示全部楼层
linux,是多线程,reconfigure没有在主线程调用,这个有没有问题?
发表于 2010-3-22 13:48:43 | 显示全部楼层
是否运行了Reactor事件循环
 楼主| 发表于 2010-3-22 13:54:52 | 显示全部楼层
运行了,已经开始执行了reconfigure函数,能看到ACE_DEBUG的日志,但是动态库的fini确实没有执行,证明没去执行那个mysvc.conf
 楼主| 发表于 2010-3-22 14:06:28 | 显示全部楼层
2009-04-17 08:06:00  gg913488771
可以调用
ACE_Service_Config::reconfigure();
进行刷新,如何生成的配置文件变了,调用reconfigure();
另外也可以向ACE_Service_Manager发送刷新请求,它内部会调ACE_Service_Config::reconfigure();

如果是多线程,注意了要主线程才会具有刷新权力,其它的调用刷新没有效果的

这是google上搜索到的一位仁兄的帖子,有这么一说法吗?
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 12:34 , Processed in 0.019873 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表