我看到了一个问题,队列没有备份,但是消费者实际执行JMS消息的时间在创建后的100-200秒之间(通过JMSTimestamp CurrentTime测量)。
  
  
   到队列的流量相当低,每分钟不到30条消息。我可以通过重新启动ActiveMQ来解决这个问题,在这之后,消息将在创建后不到1毫秒的时间内启动。
  
  
   我使用的是ActiveMQ 5.4.1,在MDB中进行的工作的正常总执行时间小于2ms,在延迟时,ActiveMQ日志中没有错误消息,CPU不足,内存充足。
  
  
   消费者似乎是在把消息从队列中拉出来,但却因为某种原因坐在上面。
  
  
   是否存在可能导致此问题的配置问题?
  
  
   编辑:
  
  
   我的MDB的第一行如下:
  
   /* Check the time since this message was created versus processed */
        try {
            long secondsToProcess = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - aMessage.getJMSTimestamp());
            if (secondsToProcess > 5) {
                log.error("JMS Consumer Start Delay: " + secondsToProcess + " s" + " JMS Message took more then 5 seconds to be processed");
            } else {
                log.debug("JMS Consumer Start Delay: " + secondsToProcess + " s");
            }
        } catch (Exception e) {
            log.error(e);
        }