问题标签 [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 回答
17368 浏览

java - Java 和 MSMQ

我很好奇是否有人对提供访问 MSMQ 的 Java 库有任何建议?我已经下载了 J-Integra Java-COM 库的试用版,并构建并运行了他们的 MSMQ 示例应用程序,但我很好奇是否有任何好的(免费 :))替代方案。我遇到过一些 JNI 实现,比如 jMSMQ 和其他一些实现,但如果可能的话,我宁愿避免使用 JNI。

我们还研究了一些 .NET<->JMS 互操作解决方案,例如 JNBridge(使用 ActiveMQ)。我认为我们公司已经决定将我们的队列集中在 MSMQ 中,所以这将是我们理想的解决方案。

我们希望在 .NET 端使用 WCF(netMsmq 或 msmqIntegration)。我有点担心 java 端将如何处理 WCF 消息(二进制编码),但那里应该有选项(带有文本编码和 MSMQ 传输的 customBinding?),所以我不太担心。主要担心在 Java 中访问 MSMQ。

我们的另一个选择是在每个队列的输入端放置一个瘦 Web 服务层,并以这种方式实现互操作。然而,性能在那里有点令人担忧。

有什么建议么?非常感谢任何人的时间。

0 投票
1 回答
879 浏览

msmq - Microsoft 消息队列缺少消息

我正在使用 C# 和 .Net Framework 1.1(是的,它很旧,但我继承了这些东西并且无法转换)。我将消息放在事务队列上,但大约 50% 的时间它不会进入队列。运行安装了所有服务包的工作组和 Windows/XP Professional。我也没有在死信队列中看到任何消息。

任何想法在哪里看?

0 投票
1 回答
1846 浏览

.net - MSMQ 与 WCF 问题

这是一个虽然解释,但我走了。

我们正在创建一个程序,其中 msmq 的发送方和接收方使用 WCF。我们实现了一个与此非常相似的故障处理:http: //msdn.microsoft.com/en-us/library/ms751472.aspx结合http://msdn.microsoft.com/en-us/library/ms789028。 aspx

一切都很好。我们甚至制作了通过队列运行 100 条消息的测试用例,一切都得到处理。当我们将其设置为 10000 时,我们会遇到一些超时,但 de 错误处理工作正常,因此消息被重试几次,然后它最终进入毒队列。

我签入了我的代码并将其发布给其他开发人员。使用队列时出现以下问题不止一次:

未正确读取的消息最终会作为错误消息(在 PoisonErrorHandler 类中)。它总是有这个异常消息(FaultException 类型):由于 EndpointDispatcher 的 AddressFilter 不匹配,接收方无法处理带有 To 'net.msmq://localhost/private/adpqueue' 的消息。检查发送方和接收方的 EndpointAddresses 是否一致。在此错误中 Code.Name = Sender 和 Code.SubCode.Name = DestinationUnreachable

在重试次数之后,它会变成 M​​smqPoisonMessageException,它会得到一个 LookupId。有了这个lookupid,我执行了ReceiveByLookupId(lookupId)(使用标准的System.Messaging.MessageQueue 类)。这会导致 InvalidOperationException。

在此之后,服务将自行重新启动并且循环将重新启动,这永远不会结束。(重新启动后,清除队列永远不会停止)。

如果您打开计算机管理并查看队列中是否有消息,则它是空的。但是当我使用文本编辑器打开 p0000001.mq 文件(在 C:\WINDOWS\system32\msmq\storage 中)时,您可以看到该消息。如果你删除这个文件,一切都会重新开始。我无法使用应用程序重新创建问题(我可以重新创建问题,因为我保存了损坏的 .mq 文件),它只是有时会发生。

这不是一个可行的情况。- 任何人都知道我如何通过代码解决这个问题或如何防止它发生?- 为什么 wcf 服务可以看到消息,而带有 LookupId 的 MessageQueue 什么也看不到?- 是否有另一种方法可以使用 LookupId 查询队列?- 这种情况怎么会发生?我可以看到所有其他消息。

0 投票
2 回答
2625 浏览

msmq - 消息队列中消息的生命周期

如何控制消息队列中消息的生命周期?默认生命周期是多少?我尝试在本地运行消息队列,但发现消息在系统重新启动时消失了。这不会破坏消息队列在构建松散耦合应用程序中的目的。这是否意味着当消息被发送到另一台机器进行处理时,第二天将无法使用它。非常感谢这里的一些指导,因为我不清楚消息队列系统的这些方面。

0 投票
2 回答
6389 浏览

.net - 消息队列 Windows 服务

我希望在 .Net 2.0 中编写一个侦听和处理消息队列 (MSMQ) 的 Windows 服务。

与其重新发明轮子,有人可以发布一个最佳方法的例子吗?它一次只需要处理一件事情,而不是并行处理(例如线程)。

基本上我希望它轮询队列,如果那里有任何东西,处理它,将它从队列中取出并重复。我也想以系统高效的方式做到这一点。

感谢您的任何建议!

0 投票
5 回答
10733 浏览

c# - SQL Server 触发器 - 将消息发送到队列

是否可以在 SQL Server 2005 中的 CLR 触发器上通过 MSMQ 将消息发送到队列?

我使用的是 SQL Server Project 类型,但 System.Messaging 没有作为我可以添加的参考出现。


基本上,当将一行写入表时,我需要执行某种类型的操作(打印)。生成该行的设备是一个只能执行基本操作的手持扫描仪——其中一个是通过 odbc 写入 SQL Server。最初的想法是轮询表、抓取记录、打印记录、删除记录。这可能会很好,但它似乎是了解消息队列的一个很好的案例和借口。

0 投票
2 回答
4146 浏览

msmq - TIBCO Rendezvous 和 MSMQ

我想知道 TIBCO Rendezvous 和 MSMQ 之间的区别。

0 投票
2 回答
1534 浏览

wcf - 我可以在 IIS7 站点的根“/”应用程序中使用 NetMsmqBinding 托管 WCF 服务吗?

我使用 NetMsmqBinding 创建了一个 WCF 服务,并使用 Windows 激活服务 (WAS) 在 IIS7 中托管它。

当前(完美运行):

托管在 IIS 中:http://localhost/MyService/MyService.svc

使用服务端点地址:http://localhost/private/MyService/MyService.svc

以及对应的队列:.\private$\MyService/MyService.svc

期望(什么都不做,甚至没有错误消息):

托管在 IIS 中:http://localhost/MyService.svc

使用服务端点地址:http://localhost/private/MyService.svc

以及对应的队列:.\private$\MyService.svc

当我使用 MyService IIS 应用程序时,一切正常。但是当我尝试使用根“/”应用程序而不是“MyService”应用程序来托管服务时,相同的设置(代码、IIS 安全性、队列安全性等)没有任何作用。我在事件日志中没有收到任何错误。传入的消息只是坐在队列中。

IIS7 站点的根应用程序是否支持托管 WAS 激活的服务?

0 投票
3 回答
3676 浏览

wcf - 与 MassTransit 或手写 MSMQ 客户端等框架相比,使用 WCF 有哪些优势?

我正在考虑使用 MSMQ 作为在我即将进行的项目中执行异步执行的解决方案。我想知道使用 WCF 和 MassTransit 等框架甚至手写 MSMQ 客户端来放置/读取 MSMQ 任务之间的区别。

基本上,应用程序将是几个网站(内部通过 LAN 或外部通过 Internet)通过服务层(无论是 WCF 还是普通 Web 服务)读取/写入数据。然后这个服务层将做以下两件事之一: 1. 将数据写入数据库 2. 和/或通过将消息放入队列来触发后台进程。3.显然它也可以从数据库中检索数据。队列另一端的小代理(一个windows服务)会监控队列并根据任务命令执行。

与 RPC 或分布式执行等相比,这种架构将非常容易扩展(添加更多队列和代理)并且易于实现。并且代理处理不需要是实时的。并且代理和服务层是独立的应用程序,除了它们共享公共域对象和存储库等。

你怎么看?欢迎针对上述要求提出架构建议。谢谢!

0 投票
6 回答
2018 浏览

c++ - 在 MSMQ 消息中发送具有 BSTR 值类型的 COM 对象

我正在尝试通过 C++ 中的 MSMQ 消息发送 COM 对象。这是我的对象:

一切都很好,我可以得到整个对象,但 BSTR 类型。浮点数和整数被正确发送和接收。但是 BSTR 类型不起作用。我正在尝试发送字符串,但找不到路。我确实尝试使用 VARIANT,但结果也是错误的。不知何故,看起来字符串没有序列化。

这些是我的 ATL 组件的一些 get 和 set 函数:

这个工作正常:

这个没有:

这就是我创建 MSMQ 消息并在生产者中填充值的方式:

这是序列化代码

如果我在生产者中获得 BSTR 值(在序列化之前) pAnalisis-getImgName(),它工作正常。相反,当我尝试在消费者中获取它时,在从队列中读取消息后,它不会返回任何内容。其他值(例如大小)可以毫无问题地返回。

有谁知道如何通过 MSMQ 在 COM 对象内发送 BSTR 值?

我试图找到一些类似的例子,但完全是徒劳的。

问题是我得到了一个带有奇怪字符的非常奇怪的值或一个十六进制值,这取决于我如何提取值..问题是我永远不会得到正确的值。

我想知道,但是......我们确定可以发送 BSTR 值吗?如果我没记错的话,它是一个指向字符串的指针......我正在运行两个不同的进程(即生产者和消费者),所以它们使用不同的内存块,它们应该在不同的机器上运行。 ..

我试图将此信息作为 VARIANT 类型发送..但也迷路了。但是,这似乎比发送 BSTR 更牵强。

对此有任何想法吗?