【发布时间】:2018-07-04 23:57:52
【问题描述】:
这是我的配置:
@Bean
ActiveMQConnectionFactory activeMQConnectionFactory() {
String url = this.environment.getProperty("jms.broker.url");
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(url);
connectionFactory.setRedeliveryPolicy(redeliveryPolicy());
return connectionFactory;
}
@Bean
public RedeliveryPolicy redeliveryPolicy() {
RedeliveryPolicy redeliveryPolicy = new RedeliveryPolicy();
redeliveryPolicy.setInitialRedeliveryDelay(500);
redeliveryPolicy.setBackOffMultiplier(2);
redeliveryPolicy.setUseExponentialBackOff(true);
redeliveryPolicy.setMaximumRedeliveries(5);
return redeliveryPolicy;
}
.....
这是我的消费者:
@Service("msgConsumer")
public class MessageConsumer {
private static final String ORDER_RESPONSE_QUEUE = "thequeue.Q";
@JmsListener(destination = ORDER_RESPONSE_QUEUE, containerFactory = "jmsListenerContainerFactory")
public void receiveMessage(final Message<String> message) throws Exception {
MessageHeaders headers = message.getHeaders();
LOG.info("Application : headers received : {}", headers);
String response = message.getPayload();
LOG.info("Application : response received : {}",response);
if(response.equals("launch"))
throw new Exception("Error");
}
}
所以我将一条消息放入队列,payload = "launch"。
我想测试事务,如果有效负载等于“启动”,它会抛出异常。
因此,感谢重新传递策略,消费者尝试消费该消息 5 次。 在 ActiveMq 队列列表中的第五个之后,我没有看到我发送的消息。
消息放在哪里?在死信队列中? 在哪里可以看到带有“启动”消息的死信队列?
谢谢。
【问题讨论】:
标签: jms activemq message-queue spring-jms dead-letter