专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WebSphere

MQ的消息的最大长如何设置

发布时间:2010-06-14 17:25:39 文章来源:www.iduyao.cn 采编人员:星星草
MQ的消息的最大长怎么设置?
xms client for c/c++中无法发送超过4M的数据,已经把把相关通道、队列和队列管理器的最大消息长度都修改到100M了,
可是在JAVA程序中却可以发送,不知道是什么原因?

------解决方案--------------------
这是.net对文件传输的限制,你可以将.net文件限制增大,mq本身限制修改后直接传输不会有问题。
------解决方案--------------------
在定义mq传输对列的时候,通过maxmsgl参数定义消息最大长度,一般不建议定义很长的消息,如果要发送很长的消息可以采用分段的方式发送.
------解决方案--------------------
我也不知道。

下面仅供参考。
如果你的数据确实很大,比如商业文档,几十 M 可以考虑 MQ File Transfer 来传递,不过这个我没用过。

MQ 支持消息分组按有序发送,并在最后一个段中设置一个标记说明这个段是分组中的最后一个段来提示接收端应用程序整个组已收到。

接收消息时如果得到一个消息的 groupId 不为空,那下一次我们就设置使用 match group id 选项来先取完这个组才尝试取其它消息。

下面这个是 Java 代码片断:

if (isGroupEnabled()) {

msg.messageFlags = MQC.MQMF_MSG_IN_GROUP;

if (isLastMessageInGroup()) {
msg.messageFlags |= MQC.MQMF_LAST_MSG_IN_GROUP;
}

if (isOrderEnabled()) {
putOptions.options |= MQC.MQPMO_LOGICAL_ORDER;
}

msg.messageSequenceNumber = getSequenceInGroup();

String groupId = getGroupId();

if (groupId == null || groupId.trim().length() == 0) {
groupId = UUIDGenerator.getInstance().generateTimeBasedUUID()
.toString();
}

msg.groupId = groupId.getBytes();
}
this.queue.put(msg, putOptions);




// receive:如果得到一个消息的 groupId 不为空,那下一次我们就设置使用 match group id 选项来先取完这个组才尝试取其它消息。

String groupId = getGroupId();

if (groupId != null && groupId.trim().length() > 0) {
msg.groupId = groupId.getBytes();
}

if (isGroupEnabled()) {
// NOT AVAILABLE UNTIL ALL MESSAGES IN SAME GROUP
// ARRIVED.
getOptions.options |= MQC.MQGMO_ALL_MSGS_AVAILABLE;

getOptions.matchOptions |= MQC.MQMO_MATCH_GROUP_ID;
}

if (isOrderEnabled()) {
getOptions.options |= MQC.MQGMO_LOGICAL_ORDER;
}

 this.queue.get(msg, getOptions);

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: