2009-10-21 47 views
4

我正在使用NMS API在C#中读/写ActiveMQ,并且我找不到预览队列中消息的方法。我可以阅读和回滚 - 但最终会让他们成为DLQ。如何在C#中为ActiveMQ队列创建队列浏览器(预览不消耗)?

在我以前的生活中,TIBCO有一个可以使用的QueueBrowser对象,我认为JMS也有IQueueBrowser。我无法找到一个ActiveMQ .NET等价物。

+0

(我曾与简单的任务,消息队列)只是一般的知识,建立一个,您可以提供例如 - 这个重要的地方? – Avram 2009-10-23 21:15:02

+0

管理队列。当你想浏览那里的内容时,可能会采取行动 - 但大多只是留意消息。 – TheSoftwareJedi 2009-10-26 14:30:01

回答

2

不幸的是,NMS对Java中JMS中可用的QueueBrowser API没有支持(至少尚未支持)。在ActiveMQ.NET问题跟踪器数据库中查看Issue AMQNET-97 - 团队正在寻找贡献者来实现此功能。

顺便说一句,你不是唯一一个要求这个 - 这是another thread对同一主题。

起初我希望Spring.NET的JMS支持(对于TIBCO)还包括ActiveMQ支持QueueBrowser。

注意,JMS的支持是目前仅针对TIBCO的命名TIBCO企业 JMS 实现提供 :不幸的是,这不是根据Spring.NET documentation的case--,只有TIBCO通过Spring.NET的JMS API支持消息服务(EMS)。没有 为什么其他供应商 不支持的根本原因。它现在只是一个 的实际原因,因为 在.NET 中没有事实上的JMS API,每个供应商都需要执行 。因此,每个供应商结束创建他们自己的.NET灵感 副本的Java JMS API的 。开放的 源项目.Net消息服务 API(NMS)的目标是提供这样一个通用API,并且很可能将用于将来的JMS工作 Spring.NET。

所以,总而言之,除非你愿意用Java代码(或调入使用.NET-to-Java interop mechanisms的一个Java库),我不认为它会很容易让你在QueueBrowser进去短期来看,尽管长期来看这个功能可能会在某些时候进入NMS。

+1

谢谢!我很可能会奖励你的赏金,但我希望能够在周末给它看看是否还有其他东西可以摆脱。我很乐意就如何在.NET中实现这一点提供建议 - 即使这意味着对NMS本身作出贡献。 – TheSoftwareJedi 2009-10-23 18:53:55

+0

如果您想贡献,请尝试在http://issues.apache.org/activemq/browse/AMQNET-97上发布评论,您可能会感兴趣! :-) – 2009-10-23 21:44:07

+2

备案:网络管理系统版本1.2.0,发布于02/12/2010包含支持QueueBrowser – Thymine 2012-09-13 19:53:12

2

实际上,ActiveMQ的支持JMX,所以你也许可以使用.NET JMX库(谷歌netMX本)

+0

感谢这个指针......它导致我寻找东西,我最终决定使用爱马仕,它是一个开源的JMS队列管理工具。这不是完美的,但它做我需要的,我不需要建立任何东西! – TheSoftwareJedi 2009-10-30 11:15:23

+0

此外,仅仅对其他读者来说,JMX支持并没有真正给我所需要的东西,而且与MBean和java的东西非常混淆 - 除非我错过了某些东西,否则不是真正与C#相关的东西。 – TheSoftwareJedi 2009-10-30 11:17:42

+0

再一次,对于读这个的人来说,我和Hermes一起的一个主要问题是ObjectMessage类型试图被读为java对象,并且没有办法重写这个来告诉它查看字符串(我使用了soapformatter)。我不得不将所有消息都改为TextMessage,这样我就可以利用Hermes中的管理功能。我写了一个快速帮助程序方法来手动对所有消息点中的消息进行soapformat格式化。 – TheSoftwareJedi 2009-10-30 11:19:45