Jms ActiveMQ,丢弃未使用的消息

Jms ActiveMQ,丢弃未使用的消息,jms,activemq,spring-jms,Jms,Activemq,Spring Jms,如何配置我的BrokerService以丢弃未使用的邮件 我不希望我的客户端在订阅服务器队列时收到服务器发送的所有旧消息 这是我目前的经纪人: BrokerService ret = new BrokerService(); ret.setPersistent(false); ret.setUseJmx(false); ret.addConnector("tcp://0.0.0.0:4444"); 目前,我的服务器首先启动并发送大约10条消息。之后,我的客户机订阅了队列,它接收到在没有客户机订

如何配置我的
BrokerService
以丢弃未使用的邮件

我不希望我的客户端在订阅服务器队列时收到服务器发送的所有旧消息

这是我目前的经纪人:

BrokerService ret = new BrokerService();
ret.setPersistent(false);
ret.setUseJmx(false);
ret.addConnector("tcp://0.0.0.0:4444");
目前,我的服务器首先启动并发送大约10条消息。之后,我的客户机订阅了队列,它接收到在没有客户机订阅时发送的所有10条消息。我不想要这种行为


已解决

@Bean
public JmsTemplate jsmTemplate(ConnectionFactory connectionFactory) {
    JmsTemplate ret = new JmsTemplate();
    ret.setConnectionFactory(connectionFactory);
    ret.setMessageConverter(jacksonJmsMessageConverter());

    // Enable the TimeToLive
    ret.setExplicitQosEnabled(true);
    // live time in millis of every sent message, unconsumed messages will be removed from the queue
    ret.setTimeToLive(10000L);
    return ret;
}
然后我会发送这样的信息:

// after 10 seconds this message will be discarded from the queue
jmsTemplate.convertAndSend("messages", "hello from server");

解决方案#2

我创建了一个主题而不是一个队列

使用主题(发布/订阅)而不是队列


默认情况下,主题订阅服务器仅在订阅处于活动状态时接收发送的消息。

我将对此进行研究,并将结果发布在此处。你能提供一份文件参考吗?我是JMSFound的新手发现这很有帮助。。谢谢