首页 文章

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

提问于
浏览
0

我已经将ActiveMQ NMS与我的asp mvc网站集成在一起,它在大多数情况下都很好用,但我遇到了最近一期的问题并且无法弄清楚我的生活是否是我的意思缺少,缺乏API支持,甚至设计缺陷(可能在API中)......

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

javax.jms.JMSException:目标临时队列:// ID:WIN-HP6U1SD1FB4-29628-1329687650640-0:1:85不存在 .

因为他们离开了页面或关闭了浏览器,因此临时队列消失了 . 但这是踢我的杀手 - 在这个异常(我抓到)之后整个消息系统都崩溃了! activemq在重新启动之前不再发送消息 . 这似乎绝对疯狂,除非我错过了我如何使用它的一些非常基本的东西 . 基本上我无法弄清楚的是:

1)为什么activeMQ在尝试将消息发送到不存在的临时队列时会发生故障?为什么不能抛出异常并继续?

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

3)如果#2出于某些疯狂的原因是不可能的,我如何从这个使整个消息队列系统关闭的jms异常中恢复?

我发布了代码,但不确定这会有所帮助 .

1 回答

相关问题