SMPPRejectErrorCode | Search |
NowSMS Support Forums ⬆ NowSMS Support - SMS Issues ⬆ Archive through May 19, 2016 ⬆ |
◄ ► |
Author | Message | |||
Mathew Mathachan Frequent Contributor Username: Mathewm Post Number: 70 Registered: 04-2011 |
Hi, We had a situation today. The SMSC was rejecting messages to a particular GSM number with 0x14. NowSMs was retrying this message (count was greater than 3K). Meanwhile more than 10K messages got queued up in NowSMS. During the time, we also noticed that HTTP submissions to NowSMS were rejected with "Underlying connection was closed" (HTTP Submissions are done over https). Once we noticed this, we updated the SMSGW.INI with SMPPRejectErroCode=14 and immediately queues got cleared and the NowSMS started accepting HTTP requests. Is there a reason as to why the HTTP submissions were not accepted when there was this issue at the SMSC end? Appreciate your support Mathew | |||
Des - NowSMS Support Board Administrator Username: Desosms Post Number: 5463 Registered: 08-2008 |
Hi Mathew, The only reason I could see why the HTTP submissions would fail is if one of the following SMSGW.INI parameters is present: OutboundQueueLimit UserOutboundQueueLimit These parameters tell the system to reject messages if there is a queue backlog that exceeds the limit defined in the setting. If neither of those settings is present, then we need to dig deeper. On the subject of error 0x14 (ESME_RMSGQFUL), this error code is frequently used to indicate that the SMSC has too many messages pending for the specific recipient, so try again later. Different versions of NowSMS handle this differently...what version are you running? -- Des NowSMS Support | |||
Mathew Mathachan Frequent Contributor Username: Mathewm Post Number: 71 Registered: 04-2011 |
Des, We rechecked and observe that both the setting were not present in the INI file. The version of NowSMS is v2014.06.30 As we are not able to recreate it here, what do you suggest we need to look out if it ever happens again Mathew | |||
Des - NowSMS Support Board Administrator Username: Desosms Post Number: 5468 Registered: 08-2008 |
Hi Mathew, Can you update NowSMS to the 2015.06.24 version? There was some new handling of the ESME_RMSGQFUL error added in 2014 versions. But we found that under some conditions, this could trigger a memory leak which could cause NowSMS to run out of memory. My gut says that is what you encountered. As a temporary fix, add RMSGQFULByNumber=No under the [SMSGW] header of SMSGW.INI This will bypass the logic that triggers the memory leak. -- Des NowSMS Support | |||
Mathew Mathachan Frequent Contributor Username: Mathewm Post Number: 72 Registered: 04-2011 |
Des, Thanks for the response. Appreciate little more clarity on the response. Did u mean to say that '----------------- (1) [SMSGW] RMSGQFULByNumber=No or '----------------- (2) [SMSGW] SMPPRejectErrorCode=14 If (1), what is the difference with (2). Mathew | |||
Des - NowSMS Support Board Administrator Username: Desosms Post Number: 5469 Registered: 08-2008 |
Hi Mathew, I recommend only RMSGQFULByNumber=No (but you may have other reasons to use the other setting). Error 0x14 (ESME_RMSGQFUL) usually indicates that the SMSC has too many messages pending for the specific recipient, so try again later. 2014 versions of NowSMS include special handling for this error. For many SMPP providers, this error indicates that too many messages are currrently queued for the specified recipient, often bacause the receiving device is off-line. If this error is received, NowSMS will hold other messages for the same recipient in queue and only retry the oldest pending message for that recipient. Once that oldest message is processed, the other messages will be released for processing. (If this setting is disabled by setting RMSGQFULByNumber=No under the [SMSGW] header of SMSGW.INI, NowSMS retries each message separately and the staggered retry pattern can produce unusual delays and/or unusual message order when the device comes back on-line.) I recommend RMSGQFULByNumber=No in 2014 versions because there is a flaw in that logic that can cause NowSMS to run out of memory. This setting avoids the problem. ESME_RMSGQFUL (and ESME_RTHROTTLED) are treated as special system errors, and for these errors, NowSMS will exceed max retries. . Instead of expiring after RetryMaxAttempts, additional retries are allowed, up to RetryMaxAge minutes. By default, RetryMaxAge is 1440 minutes (or 24 hours). You can use the RetryMaxAge parameter to lower the number of retry attempts on these messages. If you use SMPPRejectErrorCode=14 , NowSMS will fail the message after one attempt where this error is received. If this is acceptable for your configuration, then this setting is OK to use. Most people would prefer the messages to be held and retried. -- Des NowSMS Support | |||
Des - NowSMS Support Board Administrator Username: Desosms Post Number: 5470 Registered: 08-2008 |
Hi Mathew, I recommend only RMSGQFULByNumber=No (but you may have other reasons to use the other setting). Error 0x14 (ESME_RMSGQFUL) usually indicates that the SMSC has too many messages pending for the specific recipient, so try again later. 2014 versions of NowSMS include special handling for this error. For many SMPP providers, this error indicates that too many messages are currrently queued for the specified recipient, often bacause the receiving device is off-line. If this error is received, NowSMS will hold other messages for the same recipient in queue and only retry the oldest pending message for that recipient. Once that oldest message is processed, the other messages will be released for processing. (If this setting is disabled by setting RMSGQFULByNumber=No under the [SMSGW] header of SMSGW.INI, NowSMS retries each message separately and the staggered retry pattern can produce unusual delays and/or unusual message order when the device comes back on-line.) I recommend RMSGQFULByNumber=No in 2014 versions because there is a flaw in that logic that can cause NowSMS to run out of memory. This setting avoids the problem. ESME_RMSGQFUL (and ESME_RTHROTTLED) are treated as special system errors, and for these errors, NowSMS will exceed max retries. . Instead of expiring after RetryMaxAttempts, additional retries are allowed, up to RetryMaxAge minutes. By default, RetryMaxAge is 1440 minutes (or 24 hours). You can use the RetryMaxAge parameter to lower the number of retry attempts on these messages. If you use SMPPRejectErrorCode=14 , NowSMS will fail the message after one attempt where this error is received. If this is acceptable for your configuration, then this setting is OK to use. Most people would prefer the messages to be held and retried. -- Des NowSMS Support | |||
Mathew Mathachan Frequent Contributor Username: Mathewm Post Number: 73 Registered: 04-2011 |
Thank you Des for the detailed response and giving an explanation on how this situation is handled in the system. Mathew |