MSMQ写入> 1分钟

我们有一个消息写入MSMQ的问题非常缓慢。 我们的队列在Windows Server 2008 SP2上。 队列是一个公共队列,在“servername \ queuename”处寻址。

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

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

我们要发送的消息只是一个“PublishMessage”,如下所示:

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

我们看到消息实际上到达了队列中,但是之前和之后的logging显示每条消息通常超过1分钟。

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

编辑:我们的服务器运行SP 2(不是我最初陈述的SP1)。 在托pipe队列的机器上直接运行一个实例的速度很快,其他的都不是。

注:我已经交叉这在https://stackoverflow.com/questions/6083070/msmq-write-taking-1-minute

我们的问题原来是服务器没有正确authentication的基础设施问题。 我们的系统pipe理员最终通过重新configuration托pipe队列的服务器来理清它。

你能否澄清一下“在logging之前和之后显示每条信息通常超过1分钟”。 你直接在send()之前和之后logging? 或者在两条logging行之间是否有更多的代码? send()将消息传递给本地队列pipe理器以传递给远程队列pipe理器。 任何日志logging将只显示消息进入传出队列时,而不是传递时。

我会依靠性能监视器来准确显示消息何时离开一台机器并到达另一台机器。

我所看到的大部分延误是:

  • 在发送应用程序内延迟
  • DNS /名称parsing问题(但是这应该只是在连接启动并运行之后延迟第一条消息)。

当您发送消息来查看连接是否正在等待时,请查看传出队列。

延迟是否一致?

干杯
约翰Breawkell