Dave,
I had this problem somewhile back myself (Oct 2006 ) :-
http://www.nabble.com/Interesting-issue-with-DLRs-
td6851347.html#a6923001
Anyway, I wrote a patch and have had no problems since. There were 2
different issues, one is the one you suggest, where it can come in a
lot later, the other was because of the 2 different threads that
process the TX & RX. My patch fixes them both.
Your more than welcome to the patch, but as I had already applied
another patch I wrote to allow multiple SMSCs to be grouped (I had a
situation where I had 3 SMSC connections, and the DLR could come back
from a different on that I submitted to) you will either need to
apply that patch as well, or fiddle a bit with it.
The smsc dlr group thing was discussed here, the patch never got
committed though for some reason :-
http://www.nabble.com/Multiple-SMSCs-and-a-DLR-group-
td8655999.html#a8655999
I think the reason I didn't submit the DLR delay fix patch was
because the DLR group patch did not get committed, and I did not have
time to take out the first patches bits to create the clean patch
against CVS head.
Email me directly if you want the 2 patch files.
Regards
Ben
On 12 Mar 2008, at 12:58, SMPP User wrote:
Hi,
Before I go re-inventing the wheel, I would like to ask the group
if anyone has come across the situation I find myself with.
Under high load situations, say I'm sending 1500 messages out on an
SMPP bind, I find that there is a delay in receiving the
submit_sm_resp from the SMSC, which contains the msgid. This delay
can be considerable (15 seconds not uncommon). Meanwhile on my rx
bind, I can receive the deliver_sm indicating successful delivery
(or failure).
Throughput is set to 20 on 2 identical binds, so I should be
getting through 40 msgs per second. (i'm not getting close to 40/
sec, but that will be the subject of a later email)
As the submit_sm_resp has not yet arrived, no entry has been made
in the dlr database (I'm using mysql, but I don't think that's
relevant to this problem), poor old bb_store has no record of
having sent the message, and, therefore, has no interest in the
dlr, and dumps it. In the log, it says:
2008-03-12 10:21:02 [2264] [14] ERROR: SMPP[smppbind4]: got DLR but
could not find message or was not interested in it id<1-1576xxxxxx>
dst<447xxxxxxx>, type<1>
Unless I'm missing something obvious, it looks like I will need to
patch my code (using CVS-20080301), and setup a second table in my
dlr database to hold any orphaned DLRs, then, and I dread adding
this overhead, I will have to check this orphan table everytime I
get a submit_sm_resp. Or I may opt for an external process to
marry the orphans with the correct parents, and process the rogue
dlr's in this manner.
Any thoughts would be much appreciated.
Dave