Solace Community is getting a facelift!
On March 3rd we will be starting the process of migrating Solace Community to a new platform. As a result, Solace Community will go in to a temporary read-only state. You will still be able to come onto Solace Community and search through posts to find answers, but you won't be able to ask questions, post comments, or react in any way.
We hope to have the migration complete by Wednesday March 5th (or sooner), so please keep an eye out!
Is it possible to adjust the transport window size using v1.4 solace-pubsubplus Python client?
https://docs.solace.com/Messaging/Guaranteed-Msg/Configuring-Queues.htm says "Modifying max-delivered-unacked-msgs-per-flow
may negatively impact performance if it's set lower than the transport window size used by consuming clients."
Is possible to set the transport window size for a subscriber using the latest version (v1.4) of solace-pubsubplus python package? Thanks
Answers
-
Hi @balast,
Before I even answer that, I have to ask: why? What are you trying to do?
max-delivered-unacked-msgs-per-flow
is by default high (10,000) and the transport window is no where near as high (max 255), so it's a pretty rare condition to have the window bigger.0 -
Hi Tom, thanks for your quick response. My previous question explains my situation https://solace.community/discussion/comment/5414. I want to set transport window to 1 so that the subscribers only grab a single message from the queue at a time. I plan to leave
max-delivered-unacked-msgs-per-flow
at the default value.0 -
In this case you'll be setting both to 1. Leaving
max-delivered-unacked-msgs-per-flow
will not give you want you want, because the broker will deliver one message to the API, wait for the API to respond it got the message (which it will), then send another. You need to tell the broker to wait for an ack from the application (i.e. you called ack()) as well. That's what settingmax-delivered-unacked-msgs-per-flow
is forPerformance of the broker to consumer connection will indeed take a huge hit - but your need to process tasks one by one is greater than how fast you can get tasks to consumers. So, set both to 1 and don't worry about performance.
0 -
Hey @balast - as of right now you can only set the max-delivered-unacked-msg-per-flow to 1 using the management API SEMP. The python API doesnt support setting that property.
Our recommendation is to set this property on the queue and each consumer connected to the queue gets the same value.
0 -
Hey @Tamimi - what about the window size? Can we adjust the window size in Python?
0 -
Hey @AlexanderJHallAgain - you cant set the window size from the Python API either. If you set max-delivered-unacked-msg-per-flow to 1, you don't have to set the transport window, it will be effectively 1 as well.
0