首页 > 代码库 > ActiveMQ-cpp客户端程序应用异常退出问题
ActiveMQ-cpp客户端程序应用异常退出问题
笔者使用ActiveMQ作为系统中消息分发的服务器,由Java Web程序读取数据库实时记录作为Producer,接收端为C++Builder开发的客户端程序,常驻客户端右下角,弹窗显示实时消息。
测试时发现,当客户端断网(网线拔掉)或者服务器重启等连接中断时,客户端会直接退出,windows也没有报程序崩溃的问题,很是费解。
Debug调试代码发现问题出在自定义的Concumer类的异常处理时,调用了exit(1);
//SimpleAsyncConsumer.cpp 【1】
void SimpleAsyncConsumer::onException( const CMSException& ex AMQCPP_UNUSED )
{
}
注释掉exit(1)后问题解决,客户端不会再异常退出了。不过拔掉网线测试时,客户端不能检测到与服务器连接已断开的状态,笔者采用在SimpleAsyncConsumer类中添加状态变量的方式。void SimpleAsyncConsumer::onException( const CMSException& ex AMQCPP_UNUSED )
{
}
上层调用程序实时检测连接状态,检测到false时释放资源,等待重新连接。 【1】引用:http://blog.sina.com.cn/s/blog_a459dcf501017ooh.html 邵明博客ActiveMQ完整的C++客户端例子(源码) ,文中使用的客户端concumer参见此文。
ActiveMQ-cpp客户端程序应用异常退出问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。