基于根本原因对未送达报告进行扼流的制作方法

文档序号:6360125阅读:105来源:国知局
专利名称:基于根本原因对未送达报告进行扼流的制作方法
基于根本原因对未送达报告进行扼流背景当消息服务(诸如电子邮件服务)无法传送消息时,未送达报告(NDR)被发送给发送者。在确定该消息不能被发送之后立即通知尝试发送消息的用户。概述提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。在发送失败消息的未送达报告(NDR)之前,尝试确定消息尝试递送失败的根本原因。当消息失败而不知道原因时,使用该消息的上下文来确定根本原因。对于给定的上下文,该根本原因可根据单一失败来确定,或者可以根据相同上下文的失败消息的相对数量·来确定。在确定问题的根本原因时,推迟递送无法递送的任何消息,并且推迟生成相应的NDR,以为纠正动作的发生留出时间。如果在预定时间段内解决了该问题,则递送被推迟的消息而不需要发出NDR。附图简述图I示出了示例性计算设备;图2示出了用于抑制失败消息的未送达报告(NDR)的发送的系统;图3示出了用于抑制NDR的递送的过程;以及图4示出了用于尝试确定失败的消息递送的根本原因的过程。详细描述现将参考其中相同的标号代表相同的元素的附图来描述各实施例。具体地,图I和相应的讨论旨在提供对在其中可实现各实施例的合适计算环境的简要、概括描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。也可使用其它计算机系统配置,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等等。还可使用在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。现在参考

图1,将描述在各实施例中利用的计算机100的说明性计算机体系结构。图I所示的计算机体系结构可被配置为台式或移动计算机,并且包括中央处理单元5(“CPU”)、包括随机存取存储器9 (“RAM”)和只读存储器(“ROM”)11在内的系统存储器7、以及将存储器耦合至CPU 5的系统总线12。基本输入/输出系统存储在ROM 11中,所述基本输入/输出系统包含帮助在诸如启动期间在计算机内元件之间传递信息的基本例程。计算机100还包括用于存储操作系统16、应用程序和其他程序模块的大容量存储设备14,这将在以下更为详细地描述。大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连接到CPU5。大容量存储设备14及其相关联的计算机可读介质为计算机100提供非易失性存储。虽然此处包含的对计算机可读介质的描述涉及诸如硬盘或CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、R0M、EPR0M、EEPR0M、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机100访问的任何其他介质。根据各实施例,计算机100可以使用通过诸如因特网的网络18至远程计算机的逻辑连接在联网环境中操作。计算机100可以通过连接至总线12的网络接口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其它类型的网络和远程计算机系统。计算机100可耦合于一个或多个客户机设备30。每个客户机可被配置成使用消息收发应用来发送消息。该消息收发应用可以是被配置成发送和接 收消息(诸如电子邮件消息和其他类型的消息)的许多不同类型的消息收发应用。计算机100还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图I中示出)。类似地,输入/输出控制器22可以为显示屏28、打印机或其它类型的输出设备提供输出。如前简述的一样,多个程序模块和数据文件可以存储在计算机100的大容量存储设备14和RAM 9内,包括适于控制联网的个人计算机和/或服务器计算机的操作的操作系统16,如华盛顿州雷蒙德市的微软公司的W1NDOWS7 或WINDOWS SERVER 操作系统。大容量存储设备14和RAM 9还可以存储一个或多个程序模块。具体而言,大容量存储设备14和RAM 9可存储应用程序10,诸如用于发送和接收消息的消息收发服务。例如,该消息收发服务可以是电子邮件服务,诸如MICROSOFT OUTLOOK 电子邮件应用和MICROSOFT EXCHANGE 服务器应用。尽管消息传输代理26被示出为与应用程序10分开,然而它可被包括在应用程序10内。如下面将更详细地描述的,消息传输代理26被配置成协助抑制未送达报告的生成达一段时间。用确定的时间帧来尝试确定失败的根本原因,而不是立即生成并发送失败消息的未送达报告(NDR)。当消息失败而不知道原因时,使用该消息的上下文来确定根本原因。对于给定的上下文,该根本原因可根据单一失败来确定,和/或可以通过一组失败消息来确定。在确定问题的根本原因时,推迟递送任何失败消息,并将其临时存储以为纠正动作的发生留出时间。如果在预定时间段内缓解了该问题,则递送被推迟的消息而不必生成并发送原始失败的NDR。图2示出了用于抑制失败消息的未送达报告(NDR)的发送的系统200。如图所示,系统200包括邮箱服务器210和212、消息传输代理215和217以及客户机220和230。如上面简述的,消息传输代理215和217涉及在尝试确定递送消息的尝试失败的根本原因时抑制NDR的生成。例如,当消息失败时,由消息传输代理使用消息上下文、消息失败的错误码、以及经过一段时间或对于给定数量的消息而言这样的失败的相对数量来标识根本原因。根据一个实施例,消息失败的错误码遵循由IETF (因特网工程任务组)所定义的工业标准,该标准在表“5. X. X”中提供了许多不同的错误码以及使消息失败的源。可使用其它类型的错误码。取决于所返回的错误码以及消息的上下文,在一个时间段内对附加消息的进一步采样可能是确定根本原因所需的。一旦确定了根本原因,就应用相关联的一组缓解参数。这些参数可包括逐步升级工作流(escalation workflow)、重试间隔、以及预期的解决时间(time to resolution, TTR)。可为不同的根本原因建立不同的TTR。例如,为一分钟、十五分钟、四小时等等。消息上下文是由消息的、在确定该消息为何失败时相关的那组属性的值构成的。对于给定的根本原因,相关上下文中可包括一个或多个属性。例如,可与消息相关的属性可包括但不限于绑定于或来源于内部还是外部(internal vs. external bound orsourced)、该消息是否被加密、该消息的大小、发送者是经认证的还是未经认证的等等。以下示例出于说明的目的而提供,并不旨在限制。假定客户机220尝试向客户机230发送消息。邮箱服务器210从客户机220接收该消息,而消息传输代理215尝试向消息传输代理217递送该消息。响应于尝试发送该消息,生成失败并返回错误码。例如,失败可返回5. 6. O “内容转换错误”的错误码。代替邮箱服务器210立即向客户机220发送显示 该消息的失败的NDR,消息传输代理215临时存储该消息(诸如在邮箱服务器210或某种其他临时存储中)并尝试确定该失败的根本原因。对于该示例,假定失败消息的消息上下文指示消息发送者是内部的且是经认证的。以下的表格示出了可适用于此失败代码的两个根本原因定义
权利要求
1.一种用于对未送达报告(NDR)的递送进行扼流的方法,包括 响应于尝试发送消息而接收失败; 将NDR的生成和递送抑制一时间段,同时在所述时间段内确定所述失败的根本原因; 在所述时间段期间存储递送失败的所述消息; 在下一时间段期间尝试纠正所述失败的所述根本原因;以及 当在所述下一时间段内纠正了所述失败的所述根本原因时发送所存储的消息,而当在该时间段内没有纠正所述失败的所述根本原因时生成并发送所述NDR。
2.如权利要求I所述的方法,其特征在于,所述失败的所述根本原因包括确定所述消息的上下文。
3.如权利要求I所述的方法,其特征在于,确定所述失败的所述根本原因包括检查尝试递送的具有匹配上下文的一组类似消息的递送状态。
4.如权利要求3所述的方法,其特征在于,检查尝试递送的所述一组类似消息的所述递送状态包括确定所述类似消息在该组消息的尝试递送期间失败的百分比。
5.一种具有用于对未送达报告(NDR)的递送进行扼流的计算机可执行指令的计算机可读存储介质,所述指令包括 将NDR的生成抑制一时间段,同时确定消息的尝试递送的失败的根本原因; 在所述时间段期间尝试纠正所述失败的所述根本原因;以及 当在所述时间段内纠正了所述失败的所述根本原因时,发送递送失败的所述消息以便从不为所述消息的失败递送而发送所述NDR,而当在所述时间段内没有纠正所述失败的所述根本原因时,生成并发送所述NDR。
6.如权利要求5所述的计算机可读存储介质,其特征在于,所述时间段是基于所述消息的上下文以及响应于所述消息的所述失败而返回的错误码来设定的。
7.如权利要求5所述的计算机可读存储介质,其特征在于,确定所述失败的所述根本原因包括检查尝试递送的类似上下文的一组消息的递送状态,其中检查尝试递送的所述一组消息的递送状态包括确定所述消息在所述一组消息的尝试递送期间失败的百分比。
8.一种用于对未送达报告(NDR)的递送进行扼流的系统,包括 处理器和计算机可读存储介质; 存储在所述计算机可读存储介质上并在所述处理器上执行的操作环境; 网络连接;以及 在所述操作环境的控制下进行操作的消息传输代理,并且所述消息传输代理用于执行以下动作包括 将NDR的生成抑制一时间段,同时确定消息的尝试递送失败的根本原因; 在所述时间段期间尝试纠正所述失败的所述根本原因;以及 当在所述时间段内纠正了所述失败的所述根本原因时,发送递送失败的所述消息以便从不为所述消息的失败递送而发送所述NDR,而当在所述时间段内纠正了所述失败的所述根本原因时,发送所述NDR。
9.如权利要求8所述的系统,其特征在于,确定所述失败的所述根本原因包括检查尝试递送的匹配上下文的一组消息的递送状态,并且确定何时具有所述匹配上下文的所述一组消息中的失败消息的数量超出阈值。
10.如权利要求8所述的系统,其特征在于,在所述时间段期间周期性地尝试递送所述消息,其中检查尝试递送的所述一组消息的递送状态包括确定所述消息在所述一组消息的尝试递送期间失败的百分比。
全文摘要
在发送失败消息的未送达报告(NDR)之前,尝试确定消息的尝试递送失败的根本原因。当消息失败而没有已知的原因时,使用该消息的上下文来确定根本原因。对于给定上下文,该根本原因可根据单一失败来确定,或者它可以根据相同上下文的失败消息的相对数量来确定。在确定问题的根本原因时,推迟递送无法递送的任何消息,并且推迟生成相应的NDR,以为纠正动作的发送留出时间。如果在预定时间段内解决了该问题,则递送被推迟的消息而不需要发出NDR。
文档编号G06F9/44GK102844751SQ201180017669
公开日2012年12月26日 申请日期2011年3月25日 优先权日2010年3月31日
发明者S·L·曼宁, V·博克特, T·C·卢蒂宁 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1