CAMEL JMS崩溃并停止生成消息

时间:2018-11-28 11:23:03

标签: java apache-camel jms activemq camel-jms

上周,我们在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生产者失败,使用者处于活动状态并且消耗了消息。

请就此问题提出建议,谢谢。

1 个答案:

答案 0 :(得分:0)

您使用哪个版本的activemq?在5.10之前,方法executePeriodically()尚未同步,但会修改计时器任务映射。我认为他们已经解决了。