專(zhuān)利名稱(chēng):基于根本原因?qū)ξ此瓦_(dá)報(bào)告進(jìn)行扼流的制作方法
基于根本原因?qū)ξ此瓦_(dá)報(bào)告進(jìn)行扼流背景當(dāng)消息服務(wù)(諸如電子郵件服務(wù))無(wú)法傳送消息時(shí),未送達(dá)報(bào)告(NDR)被發(fā)送給發(fā)送者。在確定該消息不能被發(fā)送之后立即通知嘗試發(fā)送消息的用戶(hù)。概述提供本概述以便以簡(jiǎn)化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并非旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。在發(fā)送失敗消息的未送達(dá)報(bào)告(NDR)之前,嘗試確定消息嘗試遞送失敗的根本原因。當(dāng)消息失敗而不知道原因時(shí),使用該消息的上下文來(lái)確定根本原因。對(duì)于給定的上下文,該根本原因可根據(jù)單一失敗來(lái)確定,或者可以根據(jù)相同上下文的失敗消息的相對(duì)數(shù)量·來(lái)確定。在確定問(wèn)題的根本原因時(shí),推遲遞送無(wú)法遞送的任何消息,并且推遲生成相應(yīng)的NDR,以為糾正動(dòng)作的發(fā)生留出時(shí)間。如果在預(yù)定時(shí)間段內(nèi)解決了該問(wèn)題,則遞送被推遲的消息而不需要發(fā)出NDR。附圖簡(jiǎn)述圖I示出了示例性計(jì)算設(shè)備;圖2示出了用于抑制失敗消息的未送達(dá)報(bào)告(NDR)的發(fā)送的系統(tǒng);圖3示出了用于抑制NDR的遞送的過(guò)程;以及圖4示出了用于嘗試確定失敗的消息遞送的根本原因的過(guò)程。詳細(xì)描述現(xiàn)將參考其中相同的標(biāo)號(hào)代表相同的元素的附圖來(lái)描述各實(shí)施例。具體地,圖I和相應(yīng)的討論旨在提供對(duì)在其中可實(shí)現(xiàn)各實(shí)施例的合適計(jì)算環(huán)境的簡(jiǎn)要、概括描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其他類(lèi)型的結(jié)構(gòu)。也可使用其它計(jì)算機(jī)系統(tǒng)配置,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)電子產(chǎn)品、小型計(jì)算機(jī)、大型計(jì)算機(jī)等等。還可使用在其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境。在分布式計(jì)算環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備兩者中?,F(xiàn)在參考
圖1,將描述在各實(shí)施例中利用的計(jì)算機(jī)100的說(shuō)明性計(jì)算機(jī)體系結(jié)構(gòu)。圖I所示的計(jì)算機(jī)體系結(jié)構(gòu)可被配置為臺(tái)式或移動(dòng)計(jì)算機(jī),并且包括中央處理單元5(“CPU”)、包括隨機(jī)存取存儲(chǔ)器9 (“RAM”)和只讀存儲(chǔ)器(“ROM”)11在內(nèi)的系統(tǒng)存儲(chǔ)器7、以及將存儲(chǔ)器耦合至CPU 5的系統(tǒng)總線(xiàn)12?;据斎?輸出系統(tǒng)存儲(chǔ)在ROM 11中,所述基本輸入/輸出系統(tǒng)包含幫助在諸如啟動(dòng)期間在計(jì)算機(jī)內(nèi)元件之間傳遞信息的基本例程。計(jì)算機(jī)100還包括用于存儲(chǔ)操作系統(tǒng)16、應(yīng)用程序和其他程序模塊的大容量存儲(chǔ)設(shè)備14,這將在以下更為詳細(xì)地描述。大容量存儲(chǔ)設(shè)備14通過(guò)連接至總線(xiàn)12的大容量存儲(chǔ)控制器(未示出)連接到CPU5。大容量存儲(chǔ)設(shè)備14及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)100提供非易失性存儲(chǔ)。雖然此處包含的對(duì)計(jì)算機(jī)可讀介質(zhì)的描述涉及諸如硬盤(pán)或CD-ROM驅(qū)動(dòng)器等大容量存儲(chǔ)設(shè)備,但是計(jì)算機(jī)可讀介質(zhì)可以是能夠由計(jì)算機(jī)100訪問(wèn)的任何可用介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以存儲(chǔ)如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)來(lái)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、R0M、EPR0M、EEPR0M、閃存或其他固態(tài)存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(“DVD”)或其他光學(xué)存儲(chǔ)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備、或能用于存儲(chǔ)所需信息且可以由計(jì)算機(jī)100訪問(wèn)的任何其他介質(zhì)。根據(jù)各實(shí)施例,計(jì)算機(jī)100可以使用通過(guò)諸如因特網(wǎng)的網(wǎng)絡(luò)18至遠(yuǎn)程計(jì)算機(jī)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。計(jì)算機(jī)100可以通過(guò)連接至總線(xiàn)12的網(wǎng)絡(luò)接口單元20來(lái)連接到網(wǎng)絡(luò)18。網(wǎng)絡(luò)連接可以是無(wú)線(xiàn)的和/或有線(xiàn)的。網(wǎng)絡(luò)接口單元20也可用于連接到其它類(lèi)型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)100可耦合于一個(gè)或多個(gè)客戶(hù)機(jī)設(shè)備30。每個(gè)客戶(hù)機(jī)可被配置成使用消息收發(fā)應(yīng)用來(lái)發(fā)送消息。該消息收發(fā)應(yīng)用可以是被配置成發(fā)送和接 收消息(諸如電子郵件消息和其他類(lèi)型的消息)的許多不同類(lèi)型的消息收發(fā)應(yīng)用。計(jì)算機(jī)100還可以包括用于接收和處理來(lái)自多個(gè)其他設(shè)備的輸入的輸入/輸出控制器22,這些設(shè)備包括鍵盤(pán)、鼠標(biāo)或者電子指示筆(未在圖I中示出)。類(lèi)似地,輸入/輸出控制器22可以為顯示屏28、打印機(jī)或其它類(lèi)型的輸出設(shè)備提供輸出。如前簡(jiǎn)述的一樣,多個(gè)程序模塊和數(shù)據(jù)文件可以存儲(chǔ)在計(jì)算機(jī)100的大容量存儲(chǔ)設(shè)備14和RAM 9內(nèi),包括適于控制聯(lián)網(wǎng)的個(gè)人計(jì)算機(jī)和/或服務(wù)器計(jì)算機(jī)的操作的操作系統(tǒng)16,如華盛頓州雷蒙德市的微軟公司的W1NDOWS7 或WINDOWS SERVER 操作系統(tǒng)。大容量存儲(chǔ)設(shè)備14和RAM 9還可以存儲(chǔ)一個(gè)或多個(gè)程序模塊。具體而言,大容量存儲(chǔ)設(shè)備14和RAM 9可存儲(chǔ)應(yīng)用程序10,諸如用于發(fā)送和接收消息的消息收發(fā)服務(wù)。例如,該消息收發(fā)服務(wù)可以是電子郵件服務(wù),諸如MICROSOFT OUTLOOK 電子郵件應(yīng)用和MICROSOFT EXCHANGE 服務(wù)器應(yīng)用。盡管消息傳輸代理26被示出為與應(yīng)用程序10分開(kāi),然而它可被包括在應(yīng)用程序10內(nèi)。如下面將更詳細(xì)地描述的,消息傳輸代理26被配置成協(xié)助抑制未送達(dá)報(bào)告的生成達(dá)一段時(shí)間。用確定的時(shí)間幀來(lái)嘗試確定失敗的根本原因,而不是立即生成并發(fā)送失敗消息的未送達(dá)報(bào)告(NDR)。當(dāng)消息失敗而不知道原因時(shí),使用該消息的上下文來(lái)確定根本原因。對(duì)于給定的上下文,該根本原因可根據(jù)單一失敗來(lái)確定,和/或可以通過(guò)一組失敗消息來(lái)確定。在確定問(wèn)題的根本原因時(shí),推遲遞送任何失敗消息,并將其臨時(shí)存儲(chǔ)以為糾正動(dòng)作的發(fā)生留出時(shí)間。如果在預(yù)定時(shí)間段內(nèi)緩解了該問(wèn)題,則遞送被推遲的消息而不必生成并發(fā)送原始失敗的NDR。圖2示出了用于抑制失敗消息的未送達(dá)報(bào)告(NDR)的發(fā)送的系統(tǒng)200。如圖所示,系統(tǒng)200包括郵箱服務(wù)器210和212、消息傳輸代理215和217以及客戶(hù)機(jī)220和230。如上面簡(jiǎn)述的,消息傳輸代理215和217涉及在嘗試確定遞送消息的嘗試失敗的根本原因時(shí)抑制NDR的生成。例如,當(dāng)消息失敗時(shí),由消息傳輸代理使用消息上下文、消息失敗的錯(cuò)誤碼、以及經(jīng)過(guò)一段時(shí)間或?qū)τ诮o定數(shù)量的消息而言這樣的失敗的相對(duì)數(shù)量來(lái)標(biāo)識(shí)根本原因。根據(jù)一個(gè)實(shí)施例,消息失敗的錯(cuò)誤碼遵循由IETF (因特網(wǎng)工程任務(wù)組)所定義的工業(yè)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)在表“5. X. X”中提供了許多不同的錯(cuò)誤碼以及使消息失敗的源??墒褂闷渌?lèi)型的錯(cuò)誤碼。取決于所返回的錯(cuò)誤碼以及消息的上下文,在一個(gè)時(shí)間段內(nèi)對(duì)附加消息的進(jìn)一步采樣可能是確定根本原因所需的。一旦確定了根本原因,就應(yīng)用相關(guān)聯(lián)的一組緩解參數(shù)。這些參數(shù)可包括逐步升級(jí)工作流(escalation workflow)、重試間隔、以及預(yù)期的解決時(shí)間(time to resolution, TTR)??蔀椴煌母驹蚪⒉煌腡TR。例如,為一分鐘、十五分鐘、四小時(shí)等等。消息上下文是由消息的、在確定該消息為何失敗時(shí)相關(guān)的那組屬性的值構(gòu)成的。對(duì)于給定的根本原因,相關(guān)上下文中可包括一個(gè)或多個(gè)屬性。例如,可與消息相關(guān)的屬性可包括但不限于綁定于或來(lái)源于內(nèi)部還是外部(internal vs. external bound orsourced)、該消息是否被加密、該消息的大小、發(fā)送者是經(jīng)認(rèn)證的還是未經(jīng)認(rèn)證的等等。以下示例出于說(shuō)明的目的而提供,并不旨在限制。假定客戶(hù)機(jī)220嘗試向客戶(hù)機(jī)230發(fā)送消息。郵箱服務(wù)器210從客戶(hù)機(jī)220接收該消息,而消息傳輸代理215嘗試向消息傳輸代理217遞送該消息。響應(yīng)于嘗試發(fā)送該消息,生成失敗并返回錯(cuò)誤碼。例如,失敗可返回5. 6. O “內(nèi)容轉(zhuǎn)換錯(cuò)誤”的錯(cuò)誤碼。代替郵箱服務(wù)器210立即向客戶(hù)機(jī)220發(fā)送顯示 該消息的失敗的NDR,消息傳輸代理215臨時(shí)存儲(chǔ)該消息(諸如在郵箱服務(wù)器210或某種其他臨時(shí)存儲(chǔ)中)并嘗試確定該失敗的根本原因。對(duì)于該示例,假定失敗消息的消息上下文指示消息發(fā)送者是內(nèi)部的且是經(jīng)認(rèn)證的。以下的表格示出了可適用于此失敗代碼的兩個(gè)根本原因定義
權(quán)利要求
1.一種用于對(duì)未送達(dá)報(bào)告(NDR)的遞送進(jìn)行扼流的方法,包括 響應(yīng)于嘗試發(fā)送消息而接收失?。? 將NDR的生成和遞送抑制一時(shí)間段,同時(shí)在所述時(shí)間段內(nèi)確定所述失敗的根本原因; 在所述時(shí)間段期間存儲(chǔ)遞送失敗的所述消息; 在下一時(shí)間段期間嘗試糾正所述失敗的所述根本原因;以及 當(dāng)在所述下一時(shí)間段內(nèi)糾正了所述失敗的所述根本原因時(shí)發(fā)送所存儲(chǔ)的消息,而當(dāng)在該時(shí)間段內(nèi)沒(méi)有糾正所述失敗的所述根本原因時(shí)生成并發(fā)送所述NDR。
2.如權(quán)利要求I所述的方法,其特征在于,所述失敗的所述根本原因包括確定所述消息的上下文。
3.如權(quán)利要求I所述的方法,其特征在于,確定所述失敗的所述根本原因包括檢查嘗試遞送的具有匹配上下文的一組類(lèi)似消息的遞送狀態(tài)。
4.如權(quán)利要求3所述的方法,其特征在于,檢查嘗試遞送的所述一組類(lèi)似消息的所述遞送狀態(tài)包括確定所述類(lèi)似消息在該組消息的嘗試遞送期間失敗的百分比。
5.一種具有用于對(duì)未送達(dá)報(bào)告(NDR)的遞送進(jìn)行扼流的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令包括 將NDR的生成抑制一時(shí)間段,同時(shí)確定消息的嘗試遞送的失敗的根本原因; 在所述時(shí)間段期間嘗試糾正所述失敗的所述根本原因;以及 當(dāng)在所述時(shí)間段內(nèi)糾正了所述失敗的所述根本原因時(shí),發(fā)送遞送失敗的所述消息以便從不為所述消息的失敗遞送而發(fā)送所述NDR,而當(dāng)在所述時(shí)間段內(nèi)沒(méi)有糾正所述失敗的所述根本原因時(shí),生成并發(fā)送所述NDR。
6.如權(quán)利要求5所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述時(shí)間段是基于所述消息的上下文以及響應(yīng)于所述消息的所述失敗而返回的錯(cuò)誤碼來(lái)設(shè)定的。
7.如權(quán)利要求5所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,確定所述失敗的所述根本原因包括檢查嘗試遞送的類(lèi)似上下文的一組消息的遞送狀態(tài),其中檢查嘗試遞送的所述一組消息的遞送狀態(tài)包括確定所述消息在所述一組消息的嘗試遞送期間失敗的百分比。
8.一種用于對(duì)未送達(dá)報(bào)告(NDR)的遞送進(jìn)行扼流的系統(tǒng),包括 處理器和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì); 存儲(chǔ)在所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上并在所述處理器上執(zhí)行的操作環(huán)境; 網(wǎng)絡(luò)連接;以及 在所述操作環(huán)境的控制下進(jìn)行操作的消息傳輸代理,并且所述消息傳輸代理用于執(zhí)行以下動(dòng)作包括 將NDR的生成抑制一時(shí)間段,同時(shí)確定消息的嘗試遞送失敗的根本原因; 在所述時(shí)間段期間嘗試糾正所述失敗的所述根本原因;以及 當(dāng)在所述時(shí)間段內(nèi)糾正了所述失敗的所述根本原因時(shí),發(fā)送遞送失敗的所述消息以便從不為所述消息的失敗遞送而發(fā)送所述NDR,而當(dāng)在所述時(shí)間段內(nèi)糾正了所述失敗的所述根本原因時(shí),發(fā)送所述NDR。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,確定所述失敗的所述根本原因包括檢查嘗試遞送的匹配上下文的一組消息的遞送狀態(tài),并且確定何時(shí)具有所述匹配上下文的所述一組消息中的失敗消息的數(shù)量超出閾值。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,在所述時(shí)間段期間周期性地嘗試遞送所述消息,其中檢查嘗試遞送的所述一組消息的遞送狀態(tài)包括確定所述消息在所述一組消息的嘗試遞送期間失敗的百分比。
全文摘要
在發(fā)送失敗消息的未送達(dá)報(bào)告(NDR)之前,嘗試確定消息的嘗試遞送失敗的根本原因。當(dāng)消息失敗而沒(méi)有已知的原因時(shí),使用該消息的上下文來(lái)確定根本原因。對(duì)于給定上下文,該根本原因可根據(jù)單一失敗來(lái)確定,或者它可以根據(jù)相同上下文的失敗消息的相對(duì)數(shù)量來(lái)確定。在確定問(wèn)題的根本原因時(shí),推遲遞送無(wú)法遞送的任何消息,并且推遲生成相應(yīng)的NDR,以為糾正動(dòng)作的發(fā)送留出時(shí)間。如果在預(yù)定時(shí)間段內(nèi)解決了該問(wèn)題,則遞送被推遲的消息而不需要發(fā)出NDR。
文檔編號(hào)G06F9/44GK102844751SQ201180017669
公開(kāi)日2012年12月26日 申請(qǐng)日期2011年3月25日 優(yōu)先權(quán)日2010年3月31日
發(fā)明者S·L·曼寧, V·博克特, T·C·盧蒂寧 申請(qǐng)人:微軟公司