Я написал простую программу ActiveMQ
клиента для получения сообщения следующим образом:я отправить запланированное сообщение для ActiveMQ брокера, но два сообщений, показанного на вебе-консоли
public static void main(String[] args) throws Throwable
{
final ActiveMQConnectionFactory conFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
final QueueConnection connection = conFactory.createQueueConnection();
final Session session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
final Destination destination = new ActiveMQQueue("MJ_SAF");
final MessageProducer producer = session.createProducer(destination);
Message message = session.createTextMessage("test");
message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, 20);
message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_PERIOD, 1);
message.setIntProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT, 1);
producer.send(message);
}
, когда эта программа выполняется я ожидаю сообщение, сохраненное в запланированном часть ActiveMQ
и после 20 второй отправки для MJ_SAF
очереди, но при подключении к веб-приставка увидел следующий результат:
хранится два сообщения на MJ_SAF
и это неправильно, но когда я обычно отправляю сообщение (без планирования), я вижу сообщение в веб-консоли.
public static void main(String[] args) throws Throwable
{
final ActiveMQConnectionFactory conFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
final QueueConnection connection = conFactory.createQueueConnection();
final Session session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
final Destination destination = new ActiveMQQueue("MJ_SAF");
final MessageProducer producer = session.createProducer(destination);
Message message = session.createTextMessage("test");
producer.send(message);
}
на коде выше все хорошо:
Я не понимаю такого поведения. Кто-нибудь знает причины этого?
О, да, вы правы, спасибо. – MJM