The spring.jms.listener.acknowledge-mode configuration property currently supports only (a subset of) standard acknowledge modes.

However, it's quite common to use a non-standard acknowledge modes, such as SQS's UNORDERED_ACKNOWLEDGE which is described as:

Non standard acknowledge mode. This is a variation of CLIENT_ACKNOWLEDGE where Clients need to remember to call acknowledge on message. Difference is that calling acknowledge on a message only acknowledge the message being called.

Instead of having to provide a DefaultJmsListenerContainerFactory bean in every project to overcome the limitation, it would be nice if there would be a way to configure the desired acknowledge mode using configuration properties. This is especially the case now that Spring Framework has made it a bit easier to work with non-standard acknowledge modes after https://github.com/spring-projects/spring-framework/pull/30619.

Comment From: vpavic

I can provide a PR to address this (seeing it's currently assigned to 3.x, with hope to see this land in 3.2), as I work quite frequently with SQS these days so this change would be a valuable improvement.

I'm just curious whether there's some precedent in handling a combination of well-known and arbitrary values in the same property? Or feedback whether such approach would be a no-go.

Comment From: wilkinsona

Thanks, @vpavic. I'm not yet totally sure about the handling of well-known and arbitrary values but we can sort that out in #37576.