Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在c#中访问ActiveMQ REST管理api吗?_C#_Rest_Activemq_Jmx_Nms - Fatal编程技术网

我可以在c#中访问ActiveMQ REST管理api吗?

我可以在c#中访问ActiveMQ REST管理api吗?,c#,rest,activemq,jmx,nms,C#,Rest,Activemq,Jmx,Nms,我使用c#和activemq编码,使用NMS 1.6.1和activemq 5.9。我希望在发送消息时在自定义属性中为每条消息设置唯一的guid,然后我可以按其guid删除特定消息(不清除队列,只删除其中的一条消息)。因为我没有找到任何有帮助的NMS api,所以我认为调用activemq jmx api是唯一的方法。 起初,我想使用IKVM来帮助我,但效果并不好。ActiveMQ官方网站表示,“从5.8版开始,我们为代理提供了一个REST管理API。使用Jolokia JMX-HTTP桥,可以

我使用c#和activemq编码,使用NMS 1.6.1和activemq 5.9。我希望在发送消息时在自定义属性中为每条消息设置唯一的guid,然后我可以按其guid删除特定消息(不清除队列,只删除其中的一条消息)。因为我没有找到任何有帮助的NMS api,所以我认为调用activemq jmx api是唯一的方法。
起初,我想使用IKVM来帮助我,但效果并不好。ActiveMQ官方网站表示,“从5.8版开始,我们为代理提供了一个REST管理API。使用Jolokia JMX-HTTP桥,可以使用REST API访问所有代理指标(如内存使用情况)并执行管理操作(如清除队列)。

由于我使用的是c#,我能轻松访问这些REST管理api吗?这些REST管理api能解决我的问题吗?或者有更简单的方法吗?

您应该能够创建一个消费者,将选择器设置为您的GUID以删除特定消息。例如:

ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
IMessageConsumer consumer = session.CreateConsumer(destination, string.Format("CustomProperty = '{0}'", msgGUID));
IMessage msg = consumer.Receive();

这将使用单个消息并将其从队列中删除。我不认为JMX REST API是必要的。

是的,您的解决方案非常聪明,我应该仔细考虑一下。