У нас есть приложения для приложения Java из очереди на ActiveMq Artemis 2.39.0. Приложение использует основную версию клиента JMS 2.19.1, и оно застряло без каких -либо сообщений об ошибках. Анализируя стек, я понял, что он застрял в методе LargemessageControllerImpl.waitCompletion с помощью состояния потока «timed_waiting». Сообщения не большие (150-700 КБ), но их много (262750). Клиент застрял часами. Когда я перезагружаю его, он обрабатывает некоторые сообщения в очереди, но снова застрял при попытке обработать одно большое сообщение."org.springframework.jms.JmsListenerEndpointContainer#0-2" #60 prio=5 os_prio=0 cpu=1009.98ms elapsed=855.18s tid=0x00007f27ba6a51c0 nid=0xd678a in Object.wait() [0x00007f270f5fa000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait([email protected]/Native Method)
- waiting on
at org.apache.activemq.artemis.core.client.impl.LargeMessageControllerImpl.waitCompletion(LargeMessageControllerImpl.java:294)
- locked (a org.apache.activemq.artemis.core.client.impl.LargeMessageControllerImpl)
at org.apache.activemq.artemis.core.client.impl.LargeMessageControllerImpl.saveBuffer(LargeMessageControllerImpl.java:268)
- locked (a org.apache.activemq.artemis.core.client.impl.LargeMessageControllerImpl)
at org.apache.activemq.artemis.core.client.impl.ClientLargeMessageImpl.checkBuffer(ClientLargeMessageImpl.java:157)
at org.apache.activemq.artemis.core.client.impl.ClientLargeMessageImpl.checkCompletion(ClientLargeMessageImpl.java:82)
at org.apache.activemq.artemis.jms.client.ActiveMQMessage.doBeforeReceive(ActiveMQMessage.java:799)
at org.apache.activemq.artemis.jms.client.ActiveMQTextMessage.doBeforeReceive(ActiveMQTextMessage.java:104)
at org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.getMessage(ActiveMQMessageConsumer.java:230)
at org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.receive(ActiveMQMessageConsumer.java:134)
at org.springframework.jms.support.destination.JmsDestinationAccessor.receiveFromConsumer(JmsDestinationAccessor.java:132)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveMessage(AbstractPollingMessageListenerContainer.java:431)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:270)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120)
at java.lang.Thread.run([email protected]/Thread.java:840)
Подробнее здесь: https://stackoverflow.com/questions/795 ... completion
ActiveMq Artemis JMS Client застрял в argemessagecontrollerimpl.waitcompletion ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Spring JMS и ActiveMQ Artemis: управление таймаутом для синхронных сообщений
Гость » » в форуме JAVA - 0 Ответы
- 53 Просмотры
-
Последнее сообщение Гость
-