我正在尝试使用 ANSI-C 和 MQGET 函数从队列中接收消息。问题是我总是收到错误 2010 (MQRC_DATA_LENGTH_ERROR)。
我发现这个错误与 MQGET 调用的参数 7 (DataLength) 有关。我队列上的消息有 7157460 字节。我用于 MQGET 的通道将“最大消息长度”设置为 104857600(以及保存消息的队列)。
我什至使用这个例子中的 MQGET:http: //www.capitalware.biz/dl/code/c/msg2file.zip
而且我仍然以错误 2010 告终。我做错了什么?我应该以某种方式增加 MQSERVER 环境变量中消息的最大大小吗?
MQGET 调用:
/* ... */
MQLONG messlen; /* message length received */
MQGET(Hcon, /* connection handle */
Hobj, /* object handle */
&md, /* message descriptor */
&gmo, /* get message options */
buflen, /* pBuffer length */
pBuffer, /* pointer to message buffer */
&messlen, /* message length */
&CompCode, /* completion code */
&Reason); /* reason code */