Do not alter queue settings when using Spring Cloud Stream binder for Solace PubSub+

giri
giri Member, Administrator, Employee Posts: 103 admin

Typically, queues and other Broker resources are pre-provisioned, and the clients simply bind and use them at run-time. The auto-provisioning feature supported by Solace binder helps the creation of queues at startup - a handy feature!

Both message queues and error queues can be provisioned dynamically at the time of execution. This is great, as you can also control the queue settings via the YAML application configuration.

It should be noted that if the queues already exist on the Broker - the spring cloud application simply binds to the queue and won't be able to affect changes to the queue configuration.

Here is a list of binder parameters relevant to the point of discussion - once they are specified at the time or provisioning via binder settings (or pre-provisioned on the Broker), they cannot be altered.

queueAccessType Access type for the consumer group queue

queuePermission Permissions for the required consumer group queue

queueDiscardBehaviour If specified, whether to notify the sender if a message fails to be enqueued to the consumer group queue.

queueMaxMsgRedelivery Sets the maximum message redelivery count on the consumer group queue. (Zero means retry forever)

queueMaxMsgSize Maximum message size for the consumer group queue

queueAccessType Access type for the consumer group queue

queuePermission Permissions for the consumer group queue

queueQuota Message spool quota for the consumer group queue

queueRespectsMsgTtl Whether the consumer group queue respects Message TTL

Upon detecting a change, the binder will throw exceptions. Similarly, the error queue parameters catering to the mentioned properties cannot be altered after the queue is created. The only way to manage the desired changes is through the Broker Manager.