2向/入站SMS重试错误处理

张贴者 于2012年3月1日在 支持博客

主题关键字: ,

本文将介绍NowSMS在通过2向命令处理入站SMS消息时如何处理重试情况,并且在处理2向命令时存在连接性或其他问题,尤其是基于HTTP的2向SMS消息处理命令时。

还有其他文章介绍了NowSMS如何处理出站邮件传递的重试情况。文章中有很好的概述 NowSMS中的SMPP错误代码处理。虽然该文章主要关注SMPP连接,但是常规参数也确实适用于调制解调器。在本文中可以找到特定于CIMD2和UCP / EMI SMSC连接的其他问题 使用UCP / EMI和CIMD2进行SMS重试错误处理.

有两种类型的错误条件要考虑。一种情况是2-way命令无法处理消息并返回错误响应,例如“500 Internal Error”。这可能是由于Web服务器配置问题而发生的,也可能是由于2向命令中的逻辑错误而发生的…例如,在两向命令中发现编程错误是很常见的,其中意外的消息内容会导致意外的问题。另一种情况是连接性问题,其中无法连接到承载2向命令的Web服务器。

如果Web服务器返回有效的HTTP错误响应,例如“500 Internal Error”,NowSMS策略是将邮件标记为错误,并且永远不要重试该邮件。超过5年前,在这种情况下,NowSMS的较旧版本曾用于重试消息,但是遇到脚本问题的客户在脚本返回意外错误时抱怨消息重复。当2向SMS队列中的消息以这种方式失败时,将在NowSMS \ SMS-IN目录结构内创建一个扩展名为.BAD的文件。可以使用.IN文件扩展名重命名该文件以触发NowSMS重新处理该消息。

本文档的其余部分说明了无法连接到承载2向命令的Web服务器或Web服务器未返回有效HTTP响应(超时)的消息的重试过程。

默认情况下,NowSMS将根据以前的失败次数以延迟的间隔重试20次。

延迟的重试计划的默认行为是这样的:

在出现第一个错误之后,可以立即尝试重试(但第一个NowSMS将尝试其他未决消息)。

在第二个错误之后,NowSMS将等待30秒,然后才能重试该消息。

第三次错误后,NowSMS将等待60秒,然后才能重试该消息。

对于每个连续的错误,NowSMS再等待30秒再允许重试。

错误20次后,该消息将被视为失败。

可以将以下参数应用于SMSGW.INI文件的[2Way]部分,以提供对此重试计划的附加控制(在创建文件之前,该文件的这一部分将不存在):

RetryDelay =
RetryDelayMultiplier =
尝试后重试延迟 =
重试延迟最大 =
重试最大尝试次数 =

RetryDelay =####指定错误状态后等待重试发送的秒数,默认值为30。

RetryDelayMultiplier= ###指定要应用于连续发送失败的乘数,默认值为1。对于每次失败的尝试,重试延迟将是RetryDelay * RetryDelayMultiplier *#FailedAttempts的乘积。要使用固定的RetryDelay重试延迟,请指定RetryDelayMultiplier = 0。

尝试后重试延迟= ###指定仅在###失败尝试之后才应用重试延迟,默认值为2。NowSMS将立即重试发送失败的消息,直到发出尝试后重试延迟为止,之后将应用重试延迟。

重试延迟最大= ###指定NowSMS在两次重试之间允许经过的最大秒数,从而限制了乘数。

重试最大尝试次数= ###指定在拒绝邮件之前NowSMS将尝试的最大重试次数,默认值为20。

注意:如果记忆正确地为我服务,则默认值将导致大约90分钟的重试时间,然后再出错。 (并且邮件文件使用.BAD扩展名重命名。)

请注意,如果这些相同的设置名称也用于控制出站邮件的重试行为。

在[SMSGW]部分标题下设置的重试设置将应用于入站(两路)和出站消息。如果[2Way]和[SMSGW]下都存在重试设置,则[2Way]设置用于入站(两路)消息,[SMSGW]设置用于出站消息。

重试设置也可以放在特定于连接的标题下(例如[调制解调器– xxx] or [SMPP –server:port]),以便将不同的规则应用于不同的出站连接。

如有评论和更多讨论,请单击此处访问NowSMS技术论坛(讨论板)...