Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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# NET中的activeMQ nms-如何检查临时队列是否已被删除?_C#_.net_Activemq_Nms - Fatal编程技术网

C# NET中的activeMQ nms-如何检查临时队列是否已被删除?

C# NET中的activeMQ nms-如何检查临时队列是否已被删除?,c#,.net,activemq,nms,C#,.net,Activemq,Nms,我已经将ActiveMQ NMS与我的asp mvc网站集成在一起,它在大多数情况下工作得很好,但是我最近的一期遇到了一堵墙,我一辈子都不知道它是否是我缺少的东西,缺少API支持,甚至是设计缺陷(可能是API中的缺陷) 我正在尝试做一件简单的事情——在尝试向临时队列发送消息之前,我需要检查它是否已被删除。一旦客户端断开连接、关闭浏览器等,临时队列就会被删除。这很好,因为这就是我使用临时队列的原因。但是,我将目的地存储在服务器上,以便在某些目的地仍处于连接状态时向它们发送某些消息。在客户端离开/关

我已经将ActiveMQ NMS与我的asp mvc网站集成在一起,它在大多数情况下工作得很好,但是我最近的一期遇到了一堵墙,我一辈子都不知道它是否是我缺少的东西,缺少API支持,甚至是设计缺陷(可能是API中的缺陷)

我正在尝试做一件简单的事情——在尝试向临时队列发送消息之前,我需要检查它是否已被删除。一旦客户端断开连接、关闭浏览器等,临时队列就会被删除。这很好,因为这就是我使用临时队列的原因。但是,我将目的地存储在服务器上,以便在某些目的地仍处于连接状态时向它们发送某些消息。在客户端离开/关闭浏览器之前,一切正常,这意味着ActiveMQ将删除临时队列,我需要停止向该临时队列发送消息,直到它们重新连接,因为如果我尝试,会出现以下异常:

javax.jms.jmsceception:目标温度-queue://ID:WIN-HP6U1SD1FB4-29628-1329687650640-0:1:85不存在

这完全有道理,因为临时队列在他们离开页面或关闭浏览器后就消失了。但这是一个致命的问题——在这个异常(我发现了)之后,整个消息传递系统都崩溃了!activemq只是在我重新启动它之前不再发送消息。这看起来绝对疯狂,除非我在使用它的过程中遗漏了一些非常基本的东西。基本上我不明白的是:

1) 为什么activeMQ在尝试向不存在的临时队列dest发送消息时会停止运行??为什么它不能抛出异常并继续

2) 很好,我可以接受#1,但如何在发送临时目标队列之前检查它是否存在?API中似乎没有任何内容支持这一点

3) 如果由于某些疯狂的原因无法实现#2,那么如何从导致整个消息队列系统崩溃的jms异常中恢复


我会发布代码,但不确定这是否有帮助。

我认为您遇到了一个最近已解决的NMS错误(请参阅)。如果您更新到1.5.5或更高版本,您应该会有更好的结果