问题标签 [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 投票
3 回答
1819 浏览

performance - 性能测试 MSMQ 服务器

有没有人针对 MSMQ 做过任何类型的性能测试?

我们在 prod 环境中有一个解决方案,将错误添加到 MSMQ 以分发到数据库或事件监视器。

我们需要测试这个系统的容量,但不知道如何开始。

有人知道任何工具或有任何提示吗?

0 投票
4 回答
11721 浏览

msmq - 访问远程计算机的 MSMQ 给出“远程计算机不可用”

我们有一个在服务器上运行的 Windows 应用程序并访问其他 4 个服务器(它们都是域中的成员)以获取每个私有队列中的消息。我们刚刚安装了一个新服务器,由于某种原因,当应用程序尝试访问该计算机时,它会收到“远程计算机不可用”消息。
该应用程序以管理员域用户身份访问其他服务器。
有没有人遇到过这样的问题,或者有什么可能导致它的线索?

0 投票
3 回答
2060 浏览

wcf - 使用 WCF 和 NetMsmqBinding 时如何指定消息标签?

我想使用 NetMsmqBinding 设置 MSMQ 消息标签。我知道使用 MsmqIntegrationBinding 很容易,但我想继续使用 NetMsmqBinding (如果可能的话,甚至调用私有方法

0 投票
1 回答
450 浏览

.net-2.0 - MSMQ 通用消息传递

我正在考虑创建一个通用消息队列来处理各种进程间消息。(此时,WCF 不是一个选项。)因此,与其为特定消息设置 10-15 个不同的队列,不如使用 1 个“包罗万象”的队列。

显然,向这个队列发送消息不是问题。每个收件人都会收听队列中的新消息,然后“偷看”它们,但我正在寻找一种干净/有效的方法来做到这一点。干净我的意思是一种不需要每个收件人阅读每条消息的正文的方法。

0 投票
2 回答
6137 浏览

windows-xp - 如何使用 Windows XP 中的计算机管理工具从 MSMQ 中删除消息

计算机管理 -> 服务和应用程序 -> 消息队列

如何从特定队列中删除消息?在我看来,有某种方法,但我现在找不到。

0 投票
2 回答
506 浏览

sql-server - 在 Windows 中使用改进的 FIFO 语义构建工作项处理系统

我正在构建一个系统来生成排队等待后端处理的“工作项”。我最近完成了一个具有相同要求的系统,并提出了一个我认为不是最佳的架构,并希望为这个新系统提供一些建议。

工作项目集中排队,需要以基本上先进先出的顺序进行处理。如果这是唯一的要求,那么我可能更喜欢 MSMQ 或 SQL Server Service Broker 解决方案。但是,实际上,我需要以修改后的 FIFO 顺序选择工作项。一个工作项有几个属性,在存在某些属性值组合的情况下,它们需要按 FIFO 顺序分配。

例如,工作项可能具有以下属性:办公室、优先级、组号和序列号(组内)。当多个项目为同一个组号排队时,它们保证按序号顺序排队,并且具有相同的优先级。

在给定服务的某些配置参数的情况下,有几个后端进程(当前实现为 Windows 服务)以修改后的 FIFO 顺序拉取工作时间。运行 Washington, DC 的服务被配置为仅处理 DC 的工作项,而 NY 的服务可能被配置为同时处理 NY 和 DC 的项目(主要是为了提高整体吞吐量)。除了这种选择性之外,优先级较高的项目应该先处理,包含相同“组号”的项目必须按照序列号顺序处理。因此,如果 NY 服务正在处理具有序列 1 的组 100 中的 DC 项目,我不希望 DC 服务取消组 100 序列 2 中的 DC 项目,因为序列 1 尚未完成。其他组中的项目应该仍然有资格进行处理。

在上一个系统中,我使用 SQL 表实现了队列。我创建了存储过程来提交项目,更重要的是,将项目“分配”给负责处理它们的 Windows 服务。赋值存储过程包含我上面描述的选择逻辑。每个 Windows 服务都将调用分配存储过程,向其传递对该服务实例(例如,符合条件的办公室)唯一的参数。此分配存储过程将工作项标记为已分配(处理中),当工作完成时,调用最终存储过程以从“队列”(表)中删除该项目。

这个解决方案确实有一些优势,因为我可以通过一个简单的 SQL 选择语句快速检查这些“队列”的状态。我还能够轻松地操纵队列(例如,我可以使用简单的 SQL 更新语句来提高优先级)。然而,不利的一面是,我有时不得不处理这些队列表上的死锁,并且有编写这些存储过程的负担(一段时间后会变得乏味)。

不知何故,我认为 MSMQ(带或不带 WCS)或 Service Broker 应该能够提供更优雅的解决方案。滚动我自己的排队/工作项处理系统感觉不对。但据我所知,这些技术无法提供我在分配过程中所需的灵活性。我希望我错了。任何的建议都受欢迎。

0 投票
4 回答
1287 浏览

wcf - MSMQ 上的 WCF 不起作用

我的任务是实现一个使用 NetMsmqBinding 的 WCF 服务。我编写了服务,它运行良好。问题是他们在最后一刻告诉我不会有 Active Directory 集成。所以我不知道如何配置服务的安全性。服务和客户端机器之间有一条 VPN 隧道,但它们不使用相同的活动目录。请指教。任何帮助或教程将不胜感激。


问题是该服务并不总是在线。这就是为什么在这种情况下首选使用 WCF 而不是 MSMQ 的原因。所以我通过 MSMQ 发送单向消息 - 效果很好。我唯一的问题是我是 WCF 新手,不熟悉 WCF 安全性。我希望能够对消息进行签名和加密,因为要发送到服务的信息是机密的。我想确保只有授权的客户才能调用该服务。有什么建议么?

0 投票
3 回答
7132 浏览

multithreading - MSMQ 线程安全吗?

我有多个进程监视一个 MSMQ 队列。我想做多步骤操作,例如先查看消息,然后根据某些标准接收消息。一条消息可能会通过多个进程的接收标准,因此多个进程可能会尝试接收相同的消息。这些操作会是线程安全的吗?如果不是,我应该怎么做才能防止一个进程无法接收到另一个进程已经收到的消息?

0 投票
4 回答
17568 浏览

sql - 我应该使用 MSMQ 还是 SQL Service Broker 进行事务处理?

我的团队负责人要求我调查 MSMQ 作为我们新版本产品的一个选项。我们在当前版本中使用 SQL Service Broker。我已经完成了相当多的实验和谷歌搜索,以找到哪种产品更适合我的需求,但我想我会询问我所知道的最好的网站来获得编程答案。

一些细节:

  • 我们的客户端是 .NET 1.1 和 2.0 代码;这是发送消息的地方。
  • SQL Server 2005 实例中的目标。所有消息最终都是数据库更新或插入。
  • 我们将发送一些必须作为交易处理的更新。
  • 我们必须有完美的消息可恢复性;没有消息可以丢失。
  • 即使目标 SQL 服务器关闭,我们也必须是异步的并且能够接受消息。
  • 开发我们自己的排队解决方案不是一种选择。我们是一个小团队。

到目前为止我发现的事情:

  • MSMQ 和 SQL Service Broker 都可以完成这项工作。
  • 似乎服务代理处理事务消息的速度更快。
  • Service Broker 需要在某处运行的 SQL 服务器,而 MSMQ 需要在某处运行的任何已配置的 Windows 机器。
  • MSMQ 似乎更好/更快/更容易在集群中设置/运行。

我错过了什么吗?这里有明显的赢家吗?任何想法、经验或链接都会受到重视。谢谢!

编辑:我们最终坚持使用服务代理,因为我们在一些客户端代码中使用了自定义数据库框架(我们更好地处理事务)。该代码捕获了事务的 SQL,但没有捕获 . 客户端代码也是 .NET 的所有 1.1 版本,因此我们必须升级所有客户端代码。谢谢你的帮助!

0 投票
2 回答
2114 浏览

.net - 使用 WCF MSMQ 的观察者模式

MSMQ 携带的消息是否可以有多个侦听器?

WCF 似乎在服务方面构建了一切,使通信成为点对点事务。我想使用消息队列来缓冲另一个进程的传入流量,该进程在数据库中记录日志。

可能有任何数量的其他进程对监视传入流量感兴趣,这肯定需要观察者模式,但我看不出如何表达观察者模式,至少不通过 WCF 使用 MSMQ。

谁能给我建议?


关于我为什么关心的一些背景,这也可能有助于说明问题:我有一个 Windows 服务,它接受来自现场小黑盒的连接请求。它设置套接字,黑匣子发送描述事件的消息,并在时间和空间上用 GPS 位置进行注释。

我从套接字流中解析消息包,并通过 MSMQ 将它们发送到另一个过滤重复数据包并将数据包写入数据库表的进程。

任何数量的后处理都将受益于响应传入流量的增量计算,并且用户工具也会执行用户通知以响应传入流量。

所以,我真的很想让一个进程发送消息,而几个进程接收它们。其中一个接收器负责解析数据包内容并将消息转录到数据库中;这显然是最终从队列中删除消息的责任的候选者,但问题是如何确保这是处理消息的最后一个处理程序。