title: Keeping messages in queue in case of receiver crash
body: <p>We've a Spring JMS message listener container for receiving messages asynchronously. Using DefaultMessageListenerContainer and in sessionTransacted mode. I understand being in sessionTransacted mode means in case of an exception the message will be put back into the queue. But how can I make sure the message won't be deleted from the queue even if the receiver (which is picked the message) crashes or just the machine running it looses power?</p>
  
  <p>At first I thought CLIENT_ACKNOWLEDGE acknowledge mode should save me, but <a href="http://jira.springframework.org/browse/SPR-3796" rel="nofollow noreferrer">apparently</a> it's not the case, Spring calls .acknowledge() no matter what.</p>
  
  <p>So here's my question, how can I guarantee the delivery? Using a custom MessageListenerContainer? Using a transaction manager?</p>