使用MQ的C程序获得消息MQGET以原因代码2005结束

时间:2017-06-15 20:15:57

标签: c ibm-mq

我制作并运行了C程序,它连接到MQ并尝试获取消息。我总是收到一条消息:

var sql = require("mssql/msnodesqlv8");

这意味着:

         MQGET ended with reason code 2005        

我将缓冲区声明为

           MQRC_BUFFER_LENGTH_ERROR (2005, X'7D5') Buffer length parameter not valid    

MQ中的消息是

           char     TempBuf[65536];    
在MQ错误日志中

没有写入任何内容。

以下是该计划:

            "This is a test message"    

不打印缓冲区,您可以在上面看到错误消息。 我感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:0)

缓冲区的类型应为MQBYTE而不是char

更改 char TempBuf[65536];
收件人: MQBYTE TempBuf[65536];

要获得缓冲区长度,您应使用sizeof而不是strlen

更改 buflen = strlen(TempBuf) - 1;
收件人: buflen = sizeof(TempBuf)-1;