Do not alter queue settings when using Spring Cloud Stream binder for Solace PubSub+
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.