问题标签 [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.

0 投票
5 回答
17707 浏览

msmq - 多播、消息传递、ActiveMQ 与 MSMQ?

我正在为我们的产品开发消息/通知系统。基本要求是:

  • 开火并忘记
  • 持久的消息集,可能会更新,直到发件人说删除它们

这些库将用 C# 编写。Spring.NET 刚刚发布了一个里程碑式的构建,其中包含许多不错的消息抽象,这很棒——我计划广泛使用它。我的基本问题归结为消息代理的问题。我的架构看起来像应用程序 -> 消息代理队列 -> 服务器应用程序,它监听、将所有消息分派到它们需要去的地方,并处理那些长期存在的消息的生命周期 -> 消息代理队列或主题 -> 监听应用。

最后,问题是:我应该使用哪个消息代理?我偏向于ActiveMQ - 我们在上一个项目中使用它并且喜欢它。除了它是 Java 并且需要将 Java 安装在某处的服务器上之外,我真的想不出任何针对它的攻击,这对于某些将使用该服务的人来说可能很难卖。我一直在寻找的另一个选项是 MSMQ。由于某种未知的原因,我对它有偏见,而且它似乎也没有很好的多播支持。

有没有人用过 MSMQ 做这样的事情?任何优点或缺点,可能会以某种方式影响投票的东西?

最后一件事,我们使用的是 .NET 2.0。

0 投票
8 回答
24043 浏览

.net - Windows 上 MSMQ 的队列替代方案?

如果您想在运行 .NET 2.0 及更高版本的 Windows 下使用队列产品进行持久消息传递,那么目前有哪些 MSMQ 替代品?我知道 ActiveMQ ( http://activemq.apache.org/ ),并且我看到了对 WSMQ 的引用(指向http://wsmq.net),但该站点似乎已关闭。

还有其他选择吗?

0 投票
2 回答
6569 浏览

monitoring - MSMQ 监控

有什么可以帮助 msmq 监控的吗?当消息出现在队列中时,我想得到一些事件/监视,并且在休假时也是如此。

0 投票
2 回答
3816 浏览

msmq - 我可以通过某些属性过滤从消息队列 (MSMQ) 接收到的消息吗?(又名主题)

我正在用 C# 创建一个处理来自队列的消息的 Windows 服务。我想为操作人员提供根据消息属性在生产中划分服务的灵活性。例如,他们应该能够说一个实例处理来自客户 A 的 Web 订单,另一个实例处理来自客户 A 的批量订单,第三个实例处理来自客户 B 的 Web 或批量订单,等等。

我当前的解决方案是为每个客户\来源组合分配单独的队列。将订单放入队列的过程必须做出正确的决定。我的 Windows 服务可以配置为从一个或多个队列中提取消息。这很混乱,但它有效。

0 投票
4 回答
14147 浏览

.net - 如何处理 WCF 的 MSMQ 绑定中的消息失败

我创建了一个 WCF 服务并正在使用 netMsmqBinding 绑定。

这是一个简单的服务,它将 Dto 传递给我的服务方法并且不期望响应。消息被放置在一个 MSMQ 中,并且一旦被拾取就插入到一个数据库中。

确保没有数据丢失的最佳方法是什么。

我尝试了以下两种方法:

  1. 抛出异常

    这会将消息置于死信队列中以供手动阅读。当我的服务开始时,我可以处理这个

  2. 在绑定上设置 receiveRetryCount="3"

    经过 3 次尝试后 - 瞬间发生,这似乎将消息留在队列中,但我的服务出错了。重新启动我的服务会重复此过程。

理想情况下,我想做以下事情:

尝试处理消息

  • 如果失败,请等待该消息 5 分钟,然后重试。
  • 如果该过程失败 3 次,则将消息移动到死信队列。
  • 重新启动服务会将死信队列中的所有消息推回队列中,以便对其进行处理。

我能做到这一点吗?如果有怎么办?你能给我指出任何关于如何最好地利用 WCF 和 MSMQ 来处理我给定场景的好文章吗?

任何帮助将非常感激。谢谢!

一些附加信息

我在 Windows XP 和 Windows Server 2003 上使用 MSMQ 3.0。不幸的是,我无法使用针对 MSMQ 4.0 和 Vista/2008 的内置有害消息支持。

0 投票
5 回答
3881 浏览

wmi - 可以使用 WMI 创建 MSMQ 消息队列(PRIVATE 队列)吗?

我需要在远程机器上创建一个 PRIVATE 消息队列,并且我已经决定不能以直接的方式使用 .NET Framework 执行此操作。我可以在远程机器上创建公共消息队列,但不能创建私人消息队列。我可以在本地创建一个消息队列(公共或私有)。

我想知道是否有人知道如何通过 WMI 访问 MSMQ。

编辑:我看不出使用 MSMQ 提供程序有什么用。可能不得不变得棘手并使用 PSExec 登录到远程服务器并执行一些代码。

0 投票
1 回答
1172 浏览

msmq - 动态创建 MSMQ 侦听器的最佳方法是什么?

我在应用程序启动时使用 Spring.NET 创建消息侦听器。我现在需要能够创建 0-n 个侦听器,其中一些侦听器可能正在侦听不同的队列。我需要能够在运行时创建/销毁它们。这样做的最佳方法是什么?我以前的弹簧配置是这样的:

每次我需要一个新的侦听器时,我是否应该以编程方式执行此文件正在执行的操作?我不应该为此使用 Spring.NET 的消息传递框架吗?

0 投票
3 回答
574 浏览

wcf - 我想使用 MSMQ 3.0 和 windows 2003 记录我的 wcf 服务正在丢弃的 Poison 消息

我想使用 MSMQ 3.0 和 windows 2003 记录我的 wcf 服务正在丢弃的 Poison 消息

0 投票
2 回答
4855 浏览

c++ - C++ 中的 MSMQ 示例?

有人可以给我一些工作示例,说明如何从 C++ API 创建、添加消息、读取和销毁私有消息队列吗?我尝试了 MSDN 的代码片段,但我无法让它们正常工作。

谢谢

0 投票
5 回答
7137 浏览

.net - 如何以事务方式使用远程 MSMQ?

我正在编写一个 Windows 服务,它从 MSMQ 中提取消息并将它们发布到遗留系统 (Baan)。如果发帖失败或发帖过程中机器宕机,我不想丢失消息。因此,我使用 MSMQ 事务。失败时我中止,成功时我承诺。

在处理本地队列时,此代码运行良好。但在生产中,我希望将运行服务的机器(或机器)与队列本身分开。当我针对远程队列进行测试时,抛出 System.Messaging.MessageQueueException:“事务使用无效。”

我已验证有问题的队列是事务性的。

这是从队列接收的代码:

回答

我已经切换到SQL Service Broker。它支持远程事务接收,而 MSMQ 3.0 不支持。而且,作为额外的奖励,它已经使用了我们集群和备份的 SQL Server 实例。