IBM MQ C++应用调用MQCB注册异步回调时返回2012(MQRC_ENVIRONMENT_ERROR)错误的问题求助
IBM MQ C++应用调用MQCB注册异步回调时返回2012(MQRC_ENVIRONMENT_ERROR)错误的问题求助
各位大佬好,我现在在IBM MQ异步消息接收的问题上卡壳了,想请大家帮忙分析下:
我目前在Linux环境下,用的是IBM MQ 9.3.0.16版本的可重分发库,要给C++应用和队列管理器搭建通信通道,核心需求是异步从队列获取消息。之前用同步的get()调用(在while循环里阻塞式读取),性能和速度都跟不上,所以必须换成异步方案。
我查了MQ的C++类文档,发现没有直接支持异步读取或者定义回调的方法,后来找到了用C语言接口实现异步的路子,还找到了一个现成的工具代码来做这件事。代码编译是过了,但运行的时候,调用MQCB()注册回调函数这一步直接失败,返回的原因码是2012(也就是MQRC_ENVIRONMENT_ERROR)。
根据工具的说明和我之前查的内容,有人建议把队列管理器的Shared Connections参数改成10,我已经照着改了,但问题还是没解决。
有没有人遇到过类似的情况?或者知道这个2012错误在MQCB调用的场景下,除了共享连接数的配置,还有哪些可能的触发原因?比如是不是我的环境配置、连接方式、或者API调用的参数有遗漏的地方?
备注:内容来源于stack exchange,提问作者Ubaid Ashraf
相关产品推荐
相关产品推荐

