Hi As my mission to push up throughput continues, and I follow the moving goalposts around the field, I am at the point where I have tweaked my OS, application and DB to cater for higher volumes, have patched my code to sort out DLR sequencing issues (thanks Ben) and have pushed my throughput setting to 50 messages per second through the carrier.
My current issue is that I am being throttled by the carrier, but not in the way that I expected. They have me set to 50 messages per second, and I am presenting to them on dual binds, set at throughput of 25 each. Sounds ok. When I go to send say 2000 messages, I can parse my access.log, and I'll see some sends where I'm hitting 45+ messages Sent. But more often, I am seeing 0, or 1, or 2 being sent. When I look at the individual bind log, I'll see, 2008-03-21 12:53:57 [32228] [13] ERROR: SMPP[smppA]: SMSC returned error code 0x00000058 (Throttling error) in response to submit_sm. When I talk to the carrier, they say that this throttling is being passed back, not by them, but by the individual operator. Problem is, kannel will then back off for X seconds, so even though it has 2000 messages to send to multiple networks, it can't send any, as it regards the bind as throttled. Can anyone outline for me just how throttling operates. I see from the source that it appears to back off for 15 seconds, before re-commencing. Would it be a mistake for me to reduce this 15 to 2 or 3 seconds. Has anyone seen before where an aggregator will pass back a throttling error from an individual operator, thus gagging kannel completely? Thanks for your thoughts, Dave
