无法从ActiveMQ队列获取消息

时间:2017-06-14 16:55:45

标签: activemq

我正在运行ActiveMQ 5.14.5。我有一个包含一些待处理消息的队列。控制台的屏幕截图:

enter image description here

没有活跃的消费者。

enter image description here

控制台报告有21651条消息。但是,如果我尝试查看它们,它似乎是空的:

enter image description here

此外,当我尝试在receive()上呼叫org.apache.activemq.jms.pool.PooledConnection时,它会阻止并且不会收到任何消息。

我非常确定那里有 条消息,应该检索它们。这曾经起作用,并且已停止工作。

对此有解释吗?日志中没有任何错误。

编辑:

我在Clojure中使用Java客户端。我不想分享它,因为它可能会混淆事情,但现在就是这样。我在一些不同的线程中使用了一个Pooled工厂。但我认为使用控制台的上述示例是自包含的。

(let [factory (org.apache.activemq.ActiveMQConnectionFactory.
                 "Username"
                 "Password"
                 "URI")
      pooled-connection-factory (org.apache.activemq.jms.pool.PooledConnectionFactory.)]
  (.setConnectionFactory pooled-connection-factory factory)
  (.start pooled-connection-factory)
  (with-open [connection (.createConnection factory)]
    (let [session (.createSession connection false, javax.jms.Session/AUTO_ACKNOWLEDGE)
          destination (.createQueue session (:queue-name config))
          consumer (.createConsumer session destination)]
      (.start connection)
      (loop [message (.receive consumer)]
        (println (.getText ^org.apache.activemq.command.ActiveMQTextMessage message))
        (recur (.receive consumer))))))

0 个答案:

没有答案