我制作并运行了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"
不打印缓冲区,您可以在上面看到错误消息。 我感谢任何帮助。 感谢
答案 0 :(得分:0)
缓冲区的类型应为MQBYTE
而不是char
:
更改 char TempBuf[65536];
收件人: MQBYTE TempBuf[65536];
要获得缓冲区长度,您应使用sizeof
而不是strlen
。
更改 buflen = strlen(TempBuf) - 1;
收件人: buflen = sizeof(TempBuf)-1;