我有一个现有的系统,我想知道MSMQueue是否可以保留队列的值,如果它重新启动。它会在我重新启动时清除该值。当Windows重新启动时,MSMQueue是否可以保留其值?
回答
由于paxdiablo写道MSMQ是一个持久的排队解决方案,但不是默认情况下!默认情况是将消息存储在RAM中,并让MSMQ将消息保存到磁盘,以便在发生服务器崩溃时不会丢失,而必须在每条消息中指定它。
如果您查看酒店Message.Recoverable,可以找到关于此的更多信息。
是的,MSMQ是持久排队解决方案。它将信息安全地存储在后备存储上,不会受到电力损失的影响(除非你遇到类似于当然真正巨大的电力浪涌的磁盘)。
重点是在可能不可靠的环境中提供可靠的消息排队。为此,当特定服务器停机时丢失消息将是一个相当大的缺点。
从Microsoft's own pages(和道歉的销售间距般的语言):
消息队列应用程序可以使用消息队列基础设施跨异构网络,并与电脑可脱机进行通信。消息队列提供保证消息传递,有效的路由,安全性,事务支持和基于优先级的消息传递。
正如@谢尔-AKE Gafvelin已经说了,你可以配置每个消息,但恕我直言,更方便的方法是将其设置队列本身:Reliable Messaging with MSMQ and .NET
MessageQueue msgQ = new MessageQueue(@".\private$\Orders");
msgQ.DefaultPropertiesToSend.Recoverable = true;
msgQ.Send("This message will be marked as Recoverable");
msgQ.Close();
从文章上述(由我亮点):
通过默认,MSMQ保存在内存中的一些消息增加 性能,并且可以从队列 发送和接收消息,而没有被写入磁盘。
的方法,另外,你应该使队列事务,以保证正确的运输和接收消息。
请注意,文章不是100%准确。 “为什么我的Express MSMQ消息正在写入磁盘?” http://blogs.msdn.com/b/johnbreakwell/archive/2008/04/04/why-are-my-express-messages-being-written-to-disk.aspx – 2012-02-24 13:26:42
谢谢@John的补充信息。基本面动摇。 :-) – 2012-02-24 14:15:01
- 1. 是否可以重新启动boost :: future?
- 2. Windows服务需要重新启动以保持其功能
- 3. 是否可以重新启动/重新连接SignalR连接?
- 4. 是否可以在保留其colname的同时选择列?
- 5. 当系统重新启动时自动启动windows服务
- 6. 当其他活动正在启动时,是否可以阻止Android Activity停止?
- 7. 重新启动应用程序时无法保留当前活动
- 8. 是否有可能重新创建活动并保留运行时实例?
- 9. 是否有键盘组合可以重新启动或关闭Windows XP系统?
- 10. 当应用程序启动时,是否有可以挂钩的Windows消息?
- 11. 当Django代码更改时是否需要重新启动uWSGI?
- 12. 当应用程序部署时,dynos是否重新启动?
- 13. 当引发异常时,EDT是否重新启动?
- 14. 是否有一个Windows外壳工具可以保留历史?
- 15. 当另一个Windows服务重新启动时,Windows服务如何以编程方式自动重启?
- 16. 是否可以从用户输入重新启动程序?
- 17. 是否可以使用Android SDK或NDK重新启动手机?
- 18. Google SignIn在重新启动App时不保留凭据?
- 19. 在重新启动时保留应用程序状态
- 20. 当surfaceview被重新创建时,mediaplayer可以重新启动吗? (Android)
- 21. 当表格关闭并重新加载时保留Arraylist值
- 22. 当重新打开窗口时,Ext.Window.show()保留旧的参数值
- 23. 重复值 - 保留其中一个值
- 24. 是否可以更改字符串变量的值并永久保存此值而不将其保存在任何文件中以便下次重新启动?
- 25. 部署沙箱时是否可以重新启动应用程序?
- 26. 使用java.util.logging,是否可以在一段时间后重新启动日志?
- 27. 刷新后是否可以保留iframe url?
- 28. 是否可以在apache启动时启动一个php脚本?
- 29. NSTimer是否自动保留?
- 30. 是否可以在不重新启动进程的情况下重新启动Azure Web角色上的IIS?
我认为'*有保证的消息传递*'是引用而不是队列的**事务性**功能。当然,坚持以失败保险的方式将是它的必要组成部分。 :-)。但是,这不是默认情况。 – 2012-02-24 10:37:30