I had tried setting the sms-outgoing-queue-limit = 0 but I still saw
messages getting enqueued to the outgoing_sms queue. Also, in my load tests
with SMPP simulator binds connected to kannel, I saw a lot of full_found
queue full error with this setting set to 0.. Having a small buffer ~10
helped avoid most of the errors, but setting the limit to 10 caused retries
for all binds going to the global outgoing_sms queue and hit the
sum(#queues) limit condition in smsc2_rout(), which is what I wanted to
avoid.. Since one saturated bind can affect traffic on other binds..

On Thu, Dec 13, 2012 at 12:00 PM, Rene Kluwen <rene.klu...@chimit.nl> wrote:

> What if you just set the queue-limit to 0. Won’t that have the same effect?
> ****
>
> ** **
>
> == Rene****
>
> ** **
>
> ** **
>
> *From:* devel-boun...@vm1.kannel.org [mailto:devel-boun...@vm1.kannel.org]
> *On Behalf Of *Nick Mahilani
> *Sent:* donderdag 13 december 2012 19:04
> *To:* Amin Mukhaimer
> *Cc:* de...@vm1.kannel.org
> *Subject:* Re: outgoing queue limit in bearbox****
>
> ** **
>
> Thanks Amin !****
>
> While this approach works it is not very scalable if we have more
> operators in the future. As an alternative, I have defined a configurable
> in kannel config to bypass retries using the outgoing_sms queue. When
> turned on, this option disables queuing any messages to the 'outgoing_sms'
> queue and sends back a DLR NACK for any messages that fail for any
> reason(QFULL or submit_sm_resp with error from SMSC). This essentially
> moves the retry logic from kannel to the application using kannel and gives
> the application more control of the retry logic. This also avoids one
> saturated bind from affecting other binds.****
>
> I wanted to get some feedback and if you see any potential problems with
> this approach. I have attached a diff for this change. Please review.****
>
> ** **
>
> -Nick****
>
> ** **
>
> Hi,
> I am using kannel with multiple SMSCs in my org and we often see that high
> load on one of the binds impacts the traffic on the other binds. After
> looking at the code, I see that the outgoing_sms queue is used as a global
> retry queue and if high load is directed to one of the binds, this fills up
> the outgoing_sms queue and causes 503 for the other sms traffic going
> through other binds..
> As a potential fix, I have defined a configurable in kannel config to
> bypass retries using the outgoing_sms queue. When turned on, this option
> disables queuing any messages to the 'outgoing_sms' queue and sends back a
> DLR NACK for any messages that fail due to QFULL conditions or other cases
> that would otherwise enqueue to the 'outgoing_sms' queue. This essentially
> moves the retry logic from kannel to the application using kannel..****
>
> I wanted to get some feedback on if you see any potential problems with
> this approach.
> I can forward a diff if someone could review the diff and provide feedback.
> ****
>
> thanks,
> Nick****
>
> ** **
>
> On Wed, Nov 21, 2012 at 11:01 PM, Amin Mukhaimer <
> ami...@arabmobilecontent.com> wrote:****
>
> Yes of course, just make different config files for each and run an
> instance for each, like****
>
>  ****
>
> bearerbox  operator1_config****
>
> smsbox        operator1_config****
>
>  ****
>
> bearerbox operator2_config****
>
> smsbox      operator2_config****
>
>  ****
>
> make sure they have different ports/spool directory/database tables/ log
> files… and good luck****
>
>  ****
>
> Amin****
>
>  ****
>
> *From:* Nick Mahilani [mailto:nicky.mahil...@gmail.com]
> *Sent:* Wednesday, November 21, 2012 7:00 PM
> *To:* ami...@arabmobilecontent.com
> *Cc:* devel@kannel.org
> *Subject:* RE: outgoing queue limit in bearbox****
>
>  ****
>
> Thanks Amin for your suggestion...****
>
> Can we run multiple kannel instances on the same box?****
>
>
> Amin Mukhaimer <ami...@arabmobilecontent.com> wrote:****
>
> I had a somewhat similar problem is that it tends to get slow when sending
> high amounts of SMSs to specific SMSC, and SMSs sent to other SMSCs are
> delayed for a while, so I decided to run multiple Kannels, one for each
> operator, hopping that would increase overall performance.****
>
>  ****
>
> I don’t know if that helps, but good luck.****
>
>  ****
>
> *From:* devel-boun...@kannel.org 
> [mailto:devel-boun...@kannel.org<devel-boun...@kannel.org>]
> *On Behalf Of *Nick Mahilani
> *Sent:* Wednesday, November 21, 2012 1:16 AM
> *To:* devel@kannel.org
> *Subject:* outgoing queue limit in bearbox****
>
>  ****
>
> Hi,****
>
> I have an application which is using Kannel to send outgoing sms via
> multiple SMSC's. However, there is an insane volume of messages that needs
> to go through one of the SMSC which is impacting the other binds due to the
> global outgoing queue limit check in the code.****
>
>  ****
>
>  if (max_outgoing_sms_qlength 
> <http://doxygen.kannel.org/d5/d27/bb__smscconn_8c.html#a8> > 0 && !resend 
> <http://doxygen.kannel.org/d6/d9f/wtp__init_8h.html#a33a30> &&****
>
> 01091          queue_length > gwlist_len 
> <http://doxygen.kannel.org/da/d23/list_8h.html#a6>(smsc_list) * 
> max_outgoing_sms_qlength) {****
>
> 01092         gw_rwlock_unlock 
> <http://doxygen.kannel.org/d2/dbd/gw-rwlock_8h.html#a4>(&smsc_list_lock);****
>
> 01093         debug 
> <http://doxygen.kannel.org/d7/d7f/log_8h.html#a14>("bb.sms", 0, "sum(#queues) 
> limit");****
>
> 01094         return SMSCCONN_FAILED_QFULL;****
>
> 01095     }****
>
> I am very new to the kannel codebase so wanted to get some input on how
> complicated is the fix to isolate the queue limits to each bind/SMSC. I
> would like the other binds to not get affected by high volume of traffic on
> one of the binds. So if one smsc queue is backed up, it does not impact the
> messages sent to other SMSC's.****
>
> Also, what is recommended outgoing queue limit value in terms of messages
> per second being sent through Kannel?****
>
>  ****
>
> thanks,****
>
> Nick****
>
> ** **
>

Reply via email to