Hmmmm IMHO this looks too scary, I will try to find a better solution myself, but the problem is I am a Java Developer and my most of experience goes there :) and have not enough experience diving into C code, though I have done some modifications on Kannel as our business needs...
I have an idea, if anyone can give me some advice whether it's feasible or not: Assuming External DB storage: What if we forced kannel to insert DLR record before it submits the MT? regardless of the performance penalties, will this implementation solve the issue? What about other DLRs like ACKed (status=8) and NACKed (status=16)? will this implementation cover all statuses? if not, can we achieve a patch that makes this? My minds tells me this will be a better solution Cheers Best Regards, Mohammed M I Sleem http://www.abusleem.net http://www.freakle.com - The Search Freak http://www.colorle.com - color your Google search On Mon, Nov 22, 2010 at 4:24 PM, Alejandro Guerrieri <[email protected]>wrote: > The receiver thread handling MO's and DLR's. If you use a transceiver, I > think it'll be a single thread for both MO and MT (not 100% sure to be > honest). > > Regards, > > Alex > > -- > Alejandro Guerrieri > [email protected] > > > > On 22/11/2010, at 15:19, Mohammed Saleem wrote: > > I don't expect too uch MOs, so this should be OK, but I have some > questions: > > Which thread exactly sleeps? is it the same read/write thread on the SMPP > link socket? ( I have a bind_tranciever link without receiver-port ), if so > this may affect also the MT sending, or will kannel spawns a new thread for > each received DLR? > > Thanks > > > Best Regards, > Mohammed M I Sleem > http://www.abusleem.net > > http://www.freakle.com - The Search Freak > > http://www.colorle.com - color your Google search > > > > On Mon, Nov 22, 2010 at 4:02 PM, Alejandro Guerrieri < > [email protected]> wrote: > >> If the problem it's your aggregator returning DLR's before the message is >> ACK'ed, a FIFO won't help you. >> >> It's actually the aggregator's fault. I've created a patch that can help >> solve the issue: >> >> http://www.blogalex.com/archives/132 >> >> NOTE: Since the thread sleeps while retrying the DLR's this has a >> performance penalty, so if you expect a high volume of MO traffic, I >> recommend you to NOT use it. >> >> If you only expect a few messages per second at most, you should be OK. >> >> Regards, >> -- >> Alejandro Guerrieri >> [email protected] >> >> >> >> On 22/11/2010, at 14:33, Mohammed Saleem wrote: >> >> >> Dear Kannelers >> >> >> I have an issue with kannel finding DLRs, when a DLR is received (most >> probably with status=2 (FAILED) ) and kannel tries to find it in the DLR >> table (assuming MySQL DLR storage), then kannel doesn't find it because it >> has not been inserted yet !! looks there are 2 separated threads for >> insertion/finding and deleting DLRs in kannel and sometimes the find/delete >> thread works sooner than the other one !! We need to have something like a >> FIFO Queue for DLR operations. >> >> >> Is there any fix for this? please advise >> >> >> >> Best Regards, >> Mohammed M I Sleem >> http://www.abusleem.net >> >> http://www.freakle.com - The Search Freak >> >> http://www.colorle.com - color your Google search >> >> >> > >
