Хотите подтвердить сообщение, потеряв сообщение при перезапуске - PullRequest
0 голосов
/ 03 мая 2018

Я теряю сообщение, которое уже обрабатывается при перезапуске сервера. Я хочу подтвердить сообщение и вернуться назад, чтобы поставить в очередь сообщение, которое обрабатывается во время отказов или перезапуска сервера. Ниже мой код. Кто-нибудь может помочь мне решить эту проблему?

@Bean
public JmsListenerContainerFactory<DefaultMessageListenerContainer> responseMessageFactory() {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    factory.setConnectionFactory(connectionFactory());
    factory.setConcurrency(concurrency);
    factory.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
    return factory;
}

@JmsListener(destination = "${myProj.consumerQueueName}", containerFactory = "messageFactory")
public void recieveMessage(byte[] message) {
    String msg = new String(message);
    try { 
        MdcTranIdUtil.generateTranId(message, counter);
        List<String> myXmlList = null;          
        logger.debug("Consumer receives Message: {}" + msg );
        if (msg.length() > 0) {     
                xmlMy = receiver.transfer(msg);             
                for ( String xml : xmlMy ) {
                    responsePublisher.sendIt(xml, receiver.getMessageProps());

            }
        }
    }
    catch ( Exception e ) {
        errorPublish.send(msg);
        logger.error( "RESPONSE CONSUMER EXCEPTION" + e );
    }
...