【发布时间】:2017-08-10 00:51:43
【问题描述】:
所以我试图向接受最大 482 字符串的队列发送消息。我发送的字符串长度为 452。这是访问请求队列的代码块:
var openOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING;
requestQueue = queueManager.AccessQueue(requestQueueName, openOptions);
var messageObject = new MQMessage();
messageObject.WriteString(message);
openReplyQueue(replyQueueName);
messageObject.ReplyToQueueName = replyQueue.Name;
messageObject.Format = MQC.MQFMT_STRING
messageObject.MessageType = MQC.MQMT_REQUEST;
messageObject.Report = MQC.MQRO_COPY_MSG_ID_TO_CORREL_ID;
messageObject.Expiry = 300;
var pmo = new MQPutMessageOptions();
pmo.Options = MQC.MQPMO_FAIL_IF_QUIESCING;
requestQueue.Put(messageObject, pmo);
代码在最后一行失败,MQException 原因代码为 2030。通过一些控制台输出,我发现 MQMessage 对象中的消息长度为 904,正好是我尝试发送的字符串长度的两倍长于队列的最大消息长度。
我如何防止此缓冲区发生并确保消息长度保持在 452?
【问题讨论】: