MQ V6 6.0.2.5/V6 6.0.2.4/V5.3 csd14 调用 MQCONNX() 的bug?
我发现一个奇怪的现象我以前的程序,在MQ V6.0.2.2 and V5.3 csd07/csd08/csd12都跑的好好的,
但是用了MQ V6 6.0.2.5/V6 6.0.2.4/V5.3 csd14 之后,执行 MQCONNX ,而且我的机器不接网线的时候,
就会出现错误,在VS2005下
HEAP: Free Heap block 5079c70 modified at 507a318 after it was freed
我觉得这个一个mq补丁的bug,为了证实这一点,我把代码进行了简化,挑出了最关键的几句,直接放在一个全新的空的project中,
MQCNO cno={MQCNO_DEFAULT};
MQCD cd={MQCD_CLIENT_CONN_DEFAULT};
strcpy(cd.ConnectionName,myserverip);
strcpy(cd.ChannelName,"S_MyChannel");
cno.ClientConnPtr=&cd;
cno.Version=MQCNO_VERSION_2;
strcpy(ch,"QM_MyQm");
MQCONNX(ch,&cno,&Hconn,&CompCode,&Reason);
现象依旧.
如果可行的话,请各位专家帮我提给ibm吧,我不知道怎么才能report这个bug.
--------------------编程问答-------------------- 帮你试一下:) --------------------编程问答-------------------- 多谢了.
另外,我又测试了一下cpp的方式,问题也一样存在.就这么几行代码
ImqQueueManager QManager;
ImqChannel QChannel;
QManager.setName("QM_Test");
QChannel.setChannelName("S_Test");
// QChannel.setHeartBeatInterval(30);
QChannel.setTransportType(MQXPT_TCP);
QChannel.setConnectionName("10.10.10.1");
QManager.setChannelReference(QChannel);
if(QManager.connect()==FALSE)
{
AfxMessageBox("connect fail");
}
else
{
}
QManager.setChannelReference();
在vs2005下,不插网线,用f5方式指令,一定会出报程序异常.(第一次可能不出,我的机器是第二次出)
MQ V6 6.0.2.5
--------------------编程问答-------------------- 好的。
补充:企业软件 , WebSphere