Angeben von Einstellungen zur Ausführung des Übermittlungsprotokolls
Wenn Sie ein Übermittlungsprotokoll konfigurieren, können Sie verschiedene Ausführungseinstellungen definieren, die die Übermittlungswiederholung, Fehler und die Timeoutbehandlung konfigurieren. In diesem Thema wird erläutert, wie diese Einstellungen zur Ausführung des Übermittlungsprotokolls angegeben werden.
Wiederholen der Benachrichtigungsübermittlung
Wenn Fehler bei der Übermittlung von Benachrichtigungen auftreten, kann der Verteiler versuchen, die Benachrichtigungen erneut zu übermitteln. Sie konfigurieren einen Wiederholungszeitplan für jedes Übermittlungsprotokoll, das von einer Benachrichtigungsklasse verwendet wird.
Die Wiederholungslogik wird auf der Ebene der Verteilerarbeitselemente angewendet. Wenn Benachrichtigungen in einem Arbeitselement nicht übermittelt werden können, wird das gesamte Verteilerarbeitselement als fehlgeschlagen betrachtet. Der Verteiler kann den Übermittlungsversuch des Verteilerarbeitselements zu einem späteren Zeitpunkt nach dem angegebenen Zeitplan wiederholen.
Wenn der Verteiler ein Arbeitselement wiederholt, werden nur die Benachrichtigungen erneut gesendet, die beim vorherigen Übermittlungsversuch nicht übermittelt werden konnten. Wenn jedoch durch einen Fehler verhindert wird, dass der Verteiler den Übermittlungsstatus einer Benachrichtigung aktualisiert, kann der Verteiler den Übermittlungsversuch wiederholen und möglicherweise beim nächsten Versuch eine doppelte Benachrichtigung senden.
Wenn Sie einen Wiederholungszeitplan konfigurieren, geben Sie eine oder mehrere Wiederholungsverzögerungswerte an. Wenn eine Benachrichtigung nicht übermittelt werden kann, wartet der Verteiler mit der Wiederaufnahme des Arbeitselements, bis das durch den ersten Wiederholungsverzögerungswert angegebene Intervall verstrichen ist. Können die Benachrichtigungen noch immer nicht übermittelt werden, wartet der Verteiler die zweite Wiederholungsverzögerung ab und versucht dann die Übermittlung erneut. Dieser Vorgang wird fortgesetzt, bis entweder alle Wiederholungsverzögerungswerte ausgeschöpft sind oder die nicht übermittelten Benachrichtigungen ablaufen.
Hinweis: |
---|
Sie geben ein Ablaufalter pro Benachrichtigungsklasse und nicht pro Übermittlungsprotokoll an. Weitere Informationen finden Sie unter Angeben des Benachrichtigungsablaufalters. |
Beispiel
Die folgende Tabelle zeigt, wie der Verteiler die Benachrichtigungsübermittlung mit drei Wiederholungsverzögerungswerten wiederholt.
Erster Übermittlungsversuch |
1:00 |
Erste Wiederholungsverzögerung = 15 Minuten |
1:15 |
Zweite Wiederholungsverzögerung = 30 Minuten |
1:45 |
Dritte Wiederholungsverzögerung = 60 Minuten |
2:45 |
Die Wiederholungsverzögerungswerte wirken sich nicht auf den Auslösungszeitplan des Verteilers aus. Diese Werte stellen Mindestverzögerungen dar. Die tatsächliche Verzögerung zwischen Versuchen kann länger sein.
Wenn auf dem Server eine verlängerte Ausfallzeit auftritt, können mehrere Wiederholungsverzögerungsintervalle verstreichen, ohne dass der Verteiler eine Wiederholung versucht. In diesem Fall führt der Verteiler sofort einen Wiederholungsversuch für die noch nicht abgelaufenen Verteilerarbeitselemente aus, wenn der Server wieder online geschaltet wird. Er setzt dann den Wiederholungsverzögerungs-Zeitplan fort und wartet die im nächsten Verzögerungsintervall angegebene Zeitspanne ab, bevor er den nächsten Versuch unternimmt.
So geben Sie einen Wiederholungszeitplan an
- Definieren Sie einzelne Wiederholungsverzögerungen im RetrySchedule Element (ADF), wenn Sie eine Anwendung in XML definieren.
- Definieren Sie einzelne Wiederholungsverzögerungen in einem ProtocolRetrySchedule-Objekt, und fügen Sie sie einer ProtocolRetryScheduleCollection-Auflistung in einem NotificationClassProtocol-Objekt mithilfe der ProtocolRetrySchedules-Eigenschaft (NMO) hinzu, wenn Sie eine Anwendung programmgesteuert definieren.
Aufzeichnen von Übermittlungsfehlern
Der Verteiler schreibt Einträge in das Windows-Anwendungsprotokoll, um Benachrichtigungsübermittlungsfehler zu dokumentieren. Sie konfigurieren für jedes Übermittlungsprotokoll, wie und wann der Verteiler Übermittlungsfehlerereignisse protokolliert.
Wichtig: |
---|
Notification Services empfängt eingeschränktes Fehlerfeedback von den externen Übermittlungssystemen. Die meisten Fehler führen zu einem allgemeinen "Übermittlungsfehler" im Ereignisprotokoll. Konsistente Übermittlungsfehler können auf ein Konfigurationsproblem hinweisen. Überprüfen Sie die Übermittlungskanaleinstellungen in der Instanzkonfiguration und die Protokollfeldwerte in der Anwendungsdefinition, um die Übermittlungskonfiguration zu überprüfen. |
Die erste Eigenschaft, die Sie konfigurieren können, gibt an, wie viele Fehler auftreten müssen, bevor der Verteiler ein Ereignis im Anwendungsprotokoll protokolliert. Die zweite Eigenschaft, die Sie konfigurieren können, ist der Mindestzeitraum zwischen dem Protokollieren von Ereignissen unabhängig von der Anzahl der Fehler. Mit diesen beiden Einstellungen können Sie steuern, wie viele Ereignisse der Verteiler in das Anwendungsprotokoll schreibt. Außerdem wird dadurch verhindert, dass das Anwendungsprotokoll mit Einträgen überflutet wird, wenn in kurzer Zeit mehrere Fehler auftreten.
Wenn z. B. die Anzahl der Fehler auf 5 und das Intervall auf 10 Minuten festgelegt sind, müssen fünf Fehler auftreten, bevor der Verteiler einen Fehler protokolliert. Die Fehlerzählung beginnt nach 10 Minuten erneut. Nach fünf weiteren Fehlern schreibt der Verteiler ein weiteres Ereignis in das Anwendungsprotokoll.
Beim Entwickeln einer Anwendung können Sie die Standardwerte von einem Fehler und null Minuten verwenden. Wenn sich eine Anwendung jedoch in der Produktion befindet, sollten Sie u. U. höhere Werte verwenden, um einen Kompromiss zwischen der Anforderung nach Fehlerinformationen und dem Vermeiden übermäßiger Protokollierung zu finden.
Hinweis: |
---|
Die gespeicherten Prozeduren NSDiagnosticDeliveryChannel (Transact-SQL) und NSDiagnosticFailedNotifications (Transact-SQL) können bei der Problembehandlung von Übermittlungsfehlern hilfreich sein. |
So konfigurieren Sie die Anzahl der Übermittlungsfehler vor dem Protokollieren eines Ereignisses
- Definieren Sie die Anzahl der Übermittlungsfehler vor dem Protokollieren eines Ereignisses im FailuresBeforeLoggingEvent Element (ADF), wenn Sie eine Anwendung in XML definieren.
- Definieren Sie die Anzahl der Übermittlungsfehler vor dem Protokollieren eines Ereignisses mithilfe der FailuresBeforeEventLog-Eigenschaft (NMO), wenn Sie eine Anwendung programmgesteuert definieren.
So konfigurieren Sie das Intervall zwischen dem Protokollieren von Ereignissen
- Definieren Sie das Protokollierungsintervall im FailureEventLogInterval Element (ADF), wenn Sie eine Anwendung in XML definieren.
- Definieren Sie das Protokollierungsintervall mithilfe der FailureEventLogInterval-Eigenschaft (NMO), wenn Sie eine Anwendung programmgesteuert definieren.
Beenden der Übermittlung nach aufeinander folgenden Fehlern
Wenn Übermittlungsfehler aufgrund eines längeren Netzwerkausfalls statt aufgrund vorübergehender Netzwerkprobleme auftreten, kann der Verteiler Übermittlungsversuche in einem Arbeitselement beenden, um eine Netzwerküberflutung zu vermeiden.
Sie können angeben, wie viele aufeinander folgende Übermittlungsfehler in einem Arbeitselement auftreten müssen, bevor der Verteiler zusätzliche Übermittlungsversuche für Benachrichtigungen in dem Arbeitselement abbricht. Ist der Grenzwert erreicht, schreibt der Verteiler eine Meldung in das Anwendungsprotokoll und markiert dann das Arbeitselement als fehlgeschlagen. In diesem Fall befanden sich möglicherweise Benachrichtigungen in dem Arbeitselement, die nie versucht wurden. Wenn ein Wiederholungszeitplan vorhanden ist, nimmt der Verteiler das Arbeitselement im nächsten Wiederholungsintervall auf und wiederholt sowohl die fehlgeschlagenen als auch die noch nicht versuchten Benachrichtigungen.
So konfigurieren Sie die Anzahl aufeinander folgender Fehler vor dem Beenden der Übermittlung
- Definieren Sie die Anzahl aufeinander folgender Fehler im FailuresBeforeAbort Element (ADF), wenn Sie eine Anwendung mithilfe von XML definieren.
- Definieren Sie die Anzahl aufeinander folgender Fehler mithilfe der FailuresBeforeAbort-Eigenschaft (NMO), wenn Sie eine Anwendung programmgesteuert definieren.
Begrenzen von Multicastempfängern
Sie können für jedes Übermittlungsprotokoll die Anzahl von Abonnenten beschränken, die eine einzelne Multicastbenachrichtigung empfangen können. Weitere Informationen zu Multicast finden Sie unter Angeben von Digest- oder Multicastübermittlung.
Wenn Sie die Anzahl der Multicastempfänger begrenzen, fügt der Verteiler der Multicastempfängerliste nach dem Erreichen des Grenzwertes keine weiteren Abonnenten hinzu. Anschließend beginnt der Verteiler mit einer neuen Liste und fügt der neuen Liste Abonnenten hinzu, bis der Grenzwert erreicht wird. Dieser Vorgang wird fortgesetzt, bis alle Multicastbenachrichtigungen in einem Arbeitselement Multicastempfängerlisten hinzugefügt wurden.
Wichtig: |
---|
Multicasteinstellungen sind in SQL Server 2005 Standard Edition nicht verfügbar. |
So konfigurieren Sie die Multicastempfängergrenze
- Definieren Sie die Multicastempfängergrenze im MulticastRecipientLimit Element (ADF), wenn Sie eine Anwendung in XML definieren.
- Definieren Sie die Multicastempfängergrenze mithilfe der MulticastRecipientLimit-Eigenschaft (NMO), wenn Sie eine Anwendung programmgesteuert definieren.
Festlegen eines Arbeitselementtimeouts
Wenn der Verteiler ein Arbeitselement aufnimmt, ruft er den Inhaltsformatierer auf, um die Benachrichtigungen zu formatieren, und das Übermittlungsprotokoll, um die Benachrichtigungen zu verpacken und zu übermitteln. Wenn ein Arbeitselement sehr groß ist oder die Verteilung aus irgendeinem Grund blockiert wird, kann durch das Arbeitselement ein Thread des Verteilers verbraucht werden und die Verarbeitung anderer Benachrichtigungen verzögert werden.
Wenn Sie ein Arbeitselementtimeout für ein Übermittlungsprotokoll angeben, gibt der Verteiler das Arbeitselement nach der angegebenen Zeitspanne frei. Der Verteiler markiert das Arbeitselement als fehlgeschlagen und nimmt das Arbeitselement erneut auf, falls das Übermittlungsprotokoll über einen Wiederholungszeitplan verfügt.
So konfigurieren Sie ein Arbeitselementtimeout
- Definieren Sie den Wert des Arbeitselementtimeouts im WorkItemTimeout Element (ADF), wenn Sie eine Anwendung in XML definieren.
- Definieren Sie den Wert des Arbeitselementtimeouts mithilfe der WorkItemTimeout-Eigenschaft (NMO), wenn Sie eine Anwendung programmgesteuert definieren.
Siehe auch
Konzepte
Konfigurieren der Verteilerprotokollierung
Andere Ressourcen
Gespeicherte Prozeduren in Notification Services (Transact-SQL)
Konfigurieren von Übermittlungsprotokollen
Definieren von Benachrichtigungsklassen
Definieren von Notification Services-Anwendungen