Планирование ActiveMQ игнорируется в 5.15.8 - PullRequest
0 голосов
/ 05 февраля 2019

Я использовал функцию планирования в ActiveMQ для задержки сообщения.Однако при переключении с версии 5.9.0 на 5.15.8 настройка задержки внезапно игнорируется.Кто-нибудь знает, почему?Брокер ActiveMQ определен как

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="myBroker" dataDirectory="${activemq.data}" schedulerSupport="true"> 

в 5.9.0 и как

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="myBroker" dataDirectory="${activemq.data}" schedulerSupport="true">

в 5.15.8.В моем Java-коде задержка устанавливается с помощью

message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, 120000);

. Как уже говорилось, в версии 5.9.0 это прекрасно работает (т.е. сообщения доставляются через две минуты), но полностью игнорируется (т.е. сообщениядоставлено немедленно) в 5.15.8.Обе версии запускаются с использованием одного и того же сценария, просто меняя соответствующий путь.

Различие между файлами activemq.xml Я не вижу ничего, что мне кажется важным:

[servers]# diff apache-activemq-5.15.8/conf/activemq.xml apache-activemq-5.9.0/conf/activemq.xml
32c32
<           <bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"
---
>           <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery"
84c84
<           <!--<persistenceAdapter>
---
>           <persistenceAdapter>
86,93c86,87
<           </persistenceAdapter>-->
<             <persistenceAdapter>
<             <jdbcPersistenceAdapter dataSource="#mssql-ds" lockDataSource="#mssql-ds-lock" lockKeepAlivePeriod="5000">
<                <locker>
<                     <lease-database-locker lockAcquireSleepInterval="10000"/>
<                 </locker>
<             </jdbcPersistenceAdapter>
<             </persistenceAdapter>
---
>           </persistenceAdapter>
>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...