Search code examples
spring-cloud-streamsolace

Possible to set "Ack Immediately" using Solace Spring Cloud Stream Binder?


Per https://solace.com/blog/inside-a-solace-message-using-header-properties,
we are able to set properties like "ack immediately" to the message header.
And related API can be found in the Solace Messaging API (com.solacesystems.jcsmp).

However, from the Solace SCSt Binder doc,

https://github.com/SolaceProducts/solace-spring-cloud/tree/master/solace-spring-cloud-starters/solace-spring-cloud-stream-starter#solace-headers

I cannot find the corresponding header name for "ack immediately" above.
(but other properties like "ttl", "redelivered", "dmq Eligible" can be found)
Is it possible to set the "ack immediately" over Solace SCSt Binder?

If not, any work-around using SCSt?


Solution

  • Currently setting "ack immediately" is not supported by the Spring Cloud Stream binder, it also isn't supported by some of the Solace APIs. It would be great to understand more with what you are trying to achieve by setting this parameter and if you are a Solace supported customer I'd suggest opening a support ticket requesting the feature as it would help get this prioritized.

    Note that if you aren't changing the Publish Window Size (PUB_ACK_WINDOW_SIZE) which defaults to 1, then you effectively already have ackImmediately enabled since

    the event broker should send an acknowledgment for the messages received in the publish window when a threshold of either a third of the Publish Window Size is reached or one second has elapsed"

    If you are trying to tune ackImmediately to get more throughput and haven't already tried adjusting the publish window size then I'd suggest starting there :)