您的位置:首页 > 其它

MSMQ突破4M限制的方法 [ZT]

2007-12-03 09:52 330 查看
在默认情况下msmq 3.0(windows xp ,windows 2003)最大单个消息(Message size)大小4M;(包括正文和全部指定属性的消息的大小不能超过 4 MB。 来自windows 2003帮助文件的说明。)
4M的限制对于一些普通的应用来说已经足够,而且作为消息传递,报文交换,我们推荐的是不要使用超过1M大小的报文。这样可以很好的利用网络带宽,和提高系统的处理性能。
但对于一些特别少数的应用仍然存在大报文的需求,而msmq作为一个消息中间件有很多优势。所以我们还是要想办法使用他,或是扩展他的功能。
下面就我在网上和通过一些网友的帮助整理了一些突破这个4M限制方法。

1.通过修改注册表(regedit)HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\ 加添一个MaxMessageSize DWORD值大小默认4M(0x00400000)最大16M(x00F00000),通过试验发现最大只能是16M左右,如果在改大,再调用程序的是否会报错
using (System.Messaging.MessageQueue mq = new System.Messaging.MessageQueue(".\\private$\\mq3"))
private void SendFile(string fileName, string queuePath)

private void ReceiveFile(string fileName, string queuePath)
string queueFormatName = "";// args[0];
string fileName = "";// args[1];
queueFormatName = @"DIRECT=OS:ibm-t60\private$\myq";
fileName = "e:\\OpenbravoERP-2.35-windows-installer.exe";
LargeMessage message =
new LargeMessage(new FileStream(fileName, FileMode.Open, FileAccess.Read));

LargeMessageQueue queue =
new LargeMessageQueue(queueFormatName);

queue.Open();
try
finally
queue.Close();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: