Я теряю сообщение, которое уже обрабатывается при перезапуске сервера.
Я хочу подтвердить сообщение и вернуться назад, чтобы поставить в очередь сообщение, которое обрабатывается во время отказов или перезапуска сервера. Ниже мой код. Кто-нибудь может помочь мне решить эту проблему?
@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 );
}