2011-06-14 114 views
1

如果我通过网络使用MSMQ,如果网络连接在客户端和服务器之间丢失会发生什么情况?当网络连接丢失时,MSMQ会发生什么

那么你还可以添加消息到队列,如果是的话他们存储在哪里?在客户端应用程序中,还是在客户端操作系统等?

例如,如果我有一个Windows服务,将项目添加到不同国家的队列。如果网络连接丢失,并且Windows服务重新启动,该怎么办?信息会永远丢失吗?

问题的另一部分涉及消息需要的路由,是直接发送到接收队列,还是写入客户端的队列?这是否需要将MSMQ安装在发送服务器上,以及如何对此进行许可?

是否有任何好的文档来解释所需的设置?

+1

不,MSMQ的意义在于这不会导致数据丢失。它们存储在磁盘上。 – 2011-06-14 05:10:47

+1

注 - 只有可恢复和事务性消息存储在磁盘上;另一方面,表达消息将不会在重新启动后存活。消息存储是可配置的;默认是system32 \ msmq \ storage。 – 2011-06-14 20:46:22

回答

1

更新:关于您的后续问题。是的,你必须在发送服务器上安装msmq。没有任何许可成本,因为MSMQ是Windows的一部分,而不是一个单独的软件(就像IIS一样)。这里是Windwos 2003上的“Setting Up a Message Queue”的文档。

更新前:传出消息存储在发送服务器的传出队列中。如果发送服务重新启动,它们不会丢失。他们将在传出队列中等待(可以使用msmq管理器进行检查),因为我不知道多久。

如果msmq服务或发送服务器重新启动。那么“表达”信息将会丢失。表达或可恢复的是非转录消息的性质。

+0

好的,这是否意味着你必须在发送服务器上安装MSMQ?这是否有许可费用?有没有什么好的文档来解释这个设置? – peter 2011-06-20 21:37:22

+0

这对解释传出队列很有用http://bit.ly/lCrOIY – peter 2011-06-23 23:49:54

+0

这个演示很好http://bit.ly/iPJTrq。我将它安装在两台机器上,都必须安装MSMQ。消息自动进入传出队列,并在接收服务器收到消息时取消。这些传出队列根据需要动态创建。所有这些只是无缝地发生在应用程序中。 – peter 2011-06-23 23:51:50

相关问题