上周,我们在ESB Camel JMS上遇到了生产问题,我们已经在FUSE服务器上部署了多个微服务。一项已安装的服务发生以下异常,导致所有其他服务停止生成AMQ消息。
04:34:30,584 | INFO | 4.201:9003@36050 | PooledConnectionFactory | 219 - org.apache.activemq.activemq-osgi - 5.11.0.redhat-630187 | Expiring connection ActiveMQConnection {id=ID:jxf2pap1-38030-1541147693149-21:138801,clientId=ID:jxf2pap1-38030-1541147693149-20:138800,started=false} on IOException: Unexpected error occurred: java.lang.IllegalStateException: Timer already cancelled.
04:34:30,585 | ERROR | [ ] | DefaultErrorHandler | 232 - org.apache.camel.camel-core - 2.17.0.redhat-630187 | Failed delivery for (MessageId: ID-jxf2pap1-37890-1541147693904-3-2612818 on ExchangeId: ID-jxf2pap1-37890-1541147693904-3-2612816). Exhausted after delivery attempt: 1 caught: org.springframework.jms.IllegalStateException: javax.jms.JMSException: Disposed due to prior exception; nested exception is javax.jms.IllegalStateException: javax.jms.JMSException: Disposed due to prior exceptionn | n | Message Historyn | ---------------------------------------------------------------------------------------------------------------------------------------n | RouteId ProcessorId Processor Elapsed (ms)n | [start_ITV ] [start_ITV ] [activemq://T2_ESB_ITV_INQ ] [ 19]n | [start_ITV ] [process75 ] [ref:eventProcessor ] [ 0]n | [start_ITV ] [dynamicRouter36 ] [dynamicRouter[bean[ref:processorSender method:sendToEndpoint]] ] [ 20]n | n | Stacktracen | ---------------------------------------------------------------------------------------------------------------------------------------
org.springframework.jms.IllegalStateException: javax.jms.JMSException: Disposed due to prior exception; nested exception is javax.jms.IllegalStateException: javax.jms.JMSException: Disposed due to prior exception
仅JMS生产者失败,使用者处于活动状态并且消耗了消息。
请就此问题提出建议,谢谢。
答案 0 :(得分:0)
您使用哪个版本的activemq?在5.10之前,方法executePeriodically()尚未同步,但会修改计时器任务映射。我认为他们已经解决了。