2011-05-21 83 views
1

我们遇到的问题是消息写入MSMQ的速度很慢。我们的队列在Windows Server 2008 SP2上。队列是一个公共队列,在“servername \ queuename”处寻址。MSMQ写入时间大于1分钟

的代码将消息发送到队列是

MessageQueue queue = new MessageQueue(Settings.Default.DefaultDestinationQueue); 
queue.Formatter = new BinaryMessageFormatter(); 

queue.Send(message); 

,我们正在尝试发送的消息只是一个“PublishMessage”,具体如下:

[Serializable] 
public class PublishMessage { 
    public int EntryId {get; set; } 
} 

我们看到消息实际上到达队列,但是前后记录显示每条消息通常超过1分钟。

目前,我们看不到我们的队列配置有什么问题,但不是排队专家 - 这是此应用程序的第一个补充。有人有主意吗?

编辑:我们的服务器运行SP 2(不是我原来说的SP1)。在托管队列的计算机上直接运行实例的速度很快,其他任何都不是。

注: Crossposted这在https://serverfault.com/questions/272242/msmq-write-taking-1-minute

回答

1

我们的问题原来是服务器未正确验证的基础设施问题。我们的系统管理员最终通过重新配置托管队列的服务器来理清它。

0

是队列事务性或非事务?尝试切换此设置,看看你是否得到相同的行为。

为队列分配了多少空间?尝试增加空间,和/或将其存储移动到不同的驱动器(在不同的物理主轴上)。

系统队列中是否有消息?检查系统队列中的消息。另外,请尝试清除系统队列中的所有消息并重新运行。

+0

感谢您的快速repsonse - 答案:1)队列不是交易,2)分配的空间是'无限'。根本没有任何磁盘排队,3)系统队列是空的。此外,我们在SP2上,而不是1,我的错误。 – reallyJim 2011-05-21 16:53:30

+0

“看起来没有任何磁盘队列” 这些文件位于system32 \ msmq \ storage目录中。 – 2011-05-22 23:09:49