我试图解决以下问题:
- 我有2 SimpleMessageListenerContainer一样在java中的conf定义。
- 他们每个人都有自己的监听包裹适配器,他们都使用相同的CachingConnectionFactory(可以吗?)。 此外它们中的每处理不同的队列(具有恒定名)
- 当无论什么原因,队列中的一个被删除我测试场景。
- 当我手动从Web管理控制台删除其容器试图重新定义这个队列和失败(所有试失败)。 唯一的例外是不是真的讲述了失败的原因。
- 最终,这个队列的所有消费者线程“重新启动”,然而他们不会消耗任何进一步的消息。 即使别人将重新定义此队列(如生产者)
所以有几个问题:
- 我可以修复的队列重新定义不知何故,或检查为什么重新定义失败? 在重新开始队列作品的定义。 这使我下一个问题
- 可能是我可以让心跳发送者以某种方式使用守护线程? 它可以防止从JVM退出,这样在重新启动时没有发生。 它不会解决问题,但新的JVM进程成功,重新定义队列。 重新启动将主管所致。
同时我得到当删除队列中的所有用户(在第一容器)不是真正的工作,我期望JVM会退出,但可能是因为我有第二个容器,这是确定(所有消费者活着,队列存在)的情况下, JVM中继续生活(可能是当第二个容器将被关闭心跳发送方也将停止?)
任何建议,将不胜感激。 如果需要的话我会发布的Java配置的代码段。