问题标签 [msmq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
msmq - 多播、消息传递、ActiveMQ 与 MSMQ?
我正在为我们的产品开发消息/通知系统。基本要求是:
- 开火并忘记
- 持久的消息集,可能会更新,直到发件人说删除它们
这些库将用 C# 编写。Spring.NET 刚刚发布了一个里程碑式的构建,其中包含许多不错的消息抽象,这很棒——我计划广泛使用它。我的基本问题归结为消息代理的问题。我的架构看起来像应用程序 -> 消息代理队列 -> 服务器应用程序,它监听、将所有消息分派到它们需要去的地方,并处理那些长期存在的消息的生命周期 -> 消息代理队列或主题 -> 监听应用。
最后,问题是:我应该使用哪个消息代理?我偏向于ActiveMQ - 我们在上一个项目中使用它并且喜欢它。除了它是 Java 并且需要将 Java 安装在某处的服务器上之外,我真的想不出任何针对它的攻击,这对于某些将使用该服务的人来说可能很难卖。我一直在寻找的另一个选项是 MSMQ。由于某种未知的原因,我对它有偏见,而且它似乎也没有很好的多播支持。
有没有人用过 MSMQ 做这样的事情?任何优点或缺点,可能会以某种方式影响投票的东西?
最后一件事,我们使用的是 .NET 2.0。
.net - Windows 上 MSMQ 的队列替代方案?
如果您想在运行 .NET 2.0 及更高版本的 Windows 下使用队列产品进行持久消息传递,那么目前有哪些 MSMQ 替代品?我知道 ActiveMQ ( http://activemq.apache.org/ ),并且我看到了对 WSMQ 的引用(指向http://wsmq.net),但该站点似乎已关闭。
还有其他选择吗?
monitoring - MSMQ 监控
有什么可以帮助 msmq 监控的吗?当消息出现在队列中时,我想得到一些事件/监视,并且在休假时也是如此。
msmq - 我可以通过某些属性过滤从消息队列 (MSMQ) 接收到的消息吗?(又名主题)
我正在用 C# 创建一个处理来自队列的消息的 Windows 服务。我想为操作人员提供根据消息属性在生产中划分服务的灵活性。例如,他们应该能够说一个实例处理来自客户 A 的 Web 订单,另一个实例处理来自客户 A 的批量订单,第三个实例处理来自客户 B 的 Web 或批量订单,等等。
我当前的解决方案是为每个客户\来源组合分配单独的队列。将订单放入队列的过程必须做出正确的决定。我的 Windows 服务可以配置为从一个或多个队列中提取消息。这很混乱,但它有效。
.net - 如何处理 WCF 的 MSMQ 绑定中的消息失败
我创建了一个 WCF 服务并正在使用 netMsmqBinding 绑定。
这是一个简单的服务,它将 Dto 传递给我的服务方法并且不期望响应。消息被放置在一个 MSMQ 中,并且一旦被拾取就插入到一个数据库中。
确保没有数据丢失的最佳方法是什么。
我尝试了以下两种方法:
抛出异常
这会将消息置于死信队列中以供手动阅读。当我的服务开始时,我可以处理这个
在绑定上设置 receiveRetryCount="3"
经过 3 次尝试后 - 瞬间发生,这似乎将消息留在队列中,但我的服务出错了。重新启动我的服务会重复此过程。
理想情况下,我想做以下事情:
尝试处理消息
- 如果失败,请等待该消息 5 分钟,然后重试。
- 如果该过程失败 3 次,则将消息移动到死信队列。
- 重新启动服务会将死信队列中的所有消息推回队列中,以便对其进行处理。
我能做到这一点吗?如果有怎么办?你能给我指出任何关于如何最好地利用 WCF 和 MSMQ 来处理我给定场景的好文章吗?
任何帮助将非常感激。谢谢!
一些附加信息
我在 Windows XP 和 Windows Server 2003 上使用 MSMQ 3.0。不幸的是,我无法使用针对 MSMQ 4.0 和 Vista/2008 的内置有害消息支持。
wmi - 可以使用 WMI 创建 MSMQ 消息队列(PRIVATE 队列)吗?
我需要在远程机器上创建一个 PRIVATE 消息队列,并且我已经决定不能以直接的方式使用 .NET Framework 执行此操作。我可以在远程机器上创建公共消息队列,但不能创建私人消息队列。我可以在本地创建一个消息队列(公共或私有)。
我想知道是否有人知道如何通过 WMI 访问 MSMQ。
编辑:我看不出使用 MSMQ 提供程序有什么用。可能不得不变得棘手并使用 PSExec 登录到远程服务器并执行一些代码。
msmq - 动态创建 MSMQ 侦听器的最佳方法是什么?
我在应用程序启动时使用 Spring.NET 创建消息侦听器。我现在需要能够创建 0-n 个侦听器,其中一些侦听器可能正在侦听不同的队列。我需要能够在运行时创建/销毁它们。这样做的最佳方法是什么?我以前的弹簧配置是这样的:
每次我需要一个新的侦听器时,我是否应该以编程方式执行此文件正在执行的操作?我不应该为此使用 Spring.NET 的消息传递框架吗?
wcf - 我想使用 MSMQ 3.0 和 windows 2003 记录我的 wcf 服务正在丢弃的 Poison 消息
我想使用 MSMQ 3.0 和 windows 2003 记录我的 wcf 服务正在丢弃的 Poison 消息
c++ - C++ 中的 MSMQ 示例?
有人可以给我一些工作示例,说明如何从 C++ API 创建、添加消息、读取和销毁私有消息队列吗?我尝试了 MSDN 的代码片段,但我无法让它们正常工作。
谢谢
.net - 如何以事务方式使用远程 MSMQ?
我正在编写一个 Windows 服务,它从 MSMQ 中提取消息并将它们发布到遗留系统 (Baan)。如果发帖失败或发帖过程中机器宕机,我不想丢失消息。因此,我使用 MSMQ 事务。失败时我中止,成功时我承诺。
在处理本地队列时,此代码运行良好。但在生产中,我希望将运行服务的机器(或机器)与队列本身分开。当我针对远程队列进行测试时,抛出 System.Messaging.MessageQueueException:“事务使用无效。”
我已验证有问题的队列是事务性的。
这是从队列接收的代码:
回答
我已经切换到SQL Service Broker。它支持远程事务接收,而 MSMQ 3.0 不支持。而且,作为额外的奖励,它已经使用了我们集群和备份的 SQL Server 实例。