Spring JMS和Solace-每个事务会话接收多个消息

时间:2018-07-24 15:38:20

标签: spring spring-boot transactions jms solace

如何配置Spring侦听器以在每个会话中从Solace接收多个JMS消息?我当前的JMS配置如下:

@Bean
public DefaultJmsListenerContainerFactory listenerContainerFactory(ConnectionFactory connectionFactory, @Value("${jms.max-listeners}") Integer maxListeners) {

    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    factory.setConnectionFactory(connectionFactory);
    factory.setConcurrency("1-" + maxListeners);
    factory.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED);
    factory.setSessionTransacted(true);
    factory.setCacheLevel(DefaultMessageListenerContainer.CACHE_CONSUMER);

    return factory;
}

@JmsListener(containerFactory = "listenerContainerFactory", destination = "${jms.my-queue}")
public void receive(String messages) {
    try {
        ...
    } catch (Exception e) {
        ...
    }
}

有效载荷必须是单个消息,但是我想在每个事务中消耗很多,以便能够将持久性批处理持久化到我的持久性存储中。

通常这是通过Solace Native API完成的,但是我想用Spring抽象化我们的JMS实现,因为它减轻了该API附带的讨厌的样板。

0 个答案:

没有答案