Häufig gestellte Fragen (Frequently Asked Questions, FAQs) zu Notification Services

Microsoft hat aus Fragen, die häufig von Benutzern von Microsoft Notification Services gestellt werden, folgende Liste zusammengestellt.

Fragen und Antworten

Was ist der Unterschied zwischen Notification Services und dem SQL Server-Agent?

Der SQL Server-Agent wurde speziell dafür erstellt, Meldungen an SQL Server-Administratoren zu senden oder vordefinierte Tasks auf der Grundlage von Server- oder Datenbankbedingungen auszuführen.

Von Notification Services werden hingegen Daten aus nahezu allen Quellen gesammelt, die Ereignisse werden mit den von vielen Benutzern definierten Abonnements verglichen und mit fast allen Protokollen formatierte Mitteilungen an nahezu alle Geräte gesendet, die Mitteilungen empfangen können.

Sie können den SQL Server-Agent zwar anpassen, um Nachrichten mithilfe von Triggern an zahlreiche Benutzer zu senden, der SQL Server-Agent wurde jedoch nicht für die Skalierung auf Tausende oder Millionen von Benutzern entwickelt. Notification Services kann auf Millionen von Benutzern skalieren und Millionen von Benachrichtigungen pro Tag senden.

Als Entwicklungsplattform stellt Notification Services außerdem Funktionen bereit, um die Zeit zu reduzieren, die benötigt wird, um eine Anwendung ausführbereit zu machen. Der SQL Server-Agent ist keine Entwicklungsplattform und bietet deshalb keine vergleichbaren Funktionen.

Weitere Informationen zu Notification Services finden Sie unter Einführung in SQL Server Notification Services.

Können mehrere Benachrichtigungsanwendungen auf einem Server ausgeführt werden?

Ja. Sie stellen Notification Services-Instanzen bereit, und jede Instanz kann eine oder mehrere Anwendungen hosten. Sie können mehrere Instanzen auf einem Server ausführen, und Sie können auch mehrere Versionen von Notification Services auf einem Server ausführen.

Sie können feststellen, wie viele Anwendungen auf einem Server ausgeführt werden sollen, indem Sie die Verarbeitungslast berücksichtigen, die jede der Anwendungen voraussichtlich für Ihren Server mit sich bringen wird. Wenn Sie zu viele Anwendungen auf einem Server ausführen, nimmt die Leistung ab.

Weitere Informationen finden Sie unter Planen eines Notification Services-Systems.

Wie lange dauert es, bis aus einem Ereignis eine Benachrichtigung generiert wird?

Zunächst einmal sind nicht alle Abonnements ereignisgesteuert. Einige Abonnements geben einen Zeitplan für Benachrichtigungen an. In diesem Fall werden Benachrichtigungen gemäß dem festgelegten Zeitplan gesendet, und nicht beim Eintreffen des Ereignisses.

Bei ereignisgesteuerten Benachrichtigungen hängt die Wartezeit zwischen dem Auftreten eines Ereignisses und der Übermittlung der Benachrichtigung weitgehend vom Anwendungsentwurf ab. Die Benachrichtigungswartezeit hat folgende Ursachen:

  • Ereignisse müssen an Notification Services übermittelt werden. Die Zeit zwischen dem Auftreten eines Ereignisses und der Übermittlung dieses Ereignisses durch den Ereignisanbieter in einem Ereignisbatch ist eine Ursache für die Wartezeit.
  • Der Generator funktioniert nach einem Zeitplan, der von dem Wert der QuantumDuration-Eigenschaft des Generators bestimmt wird. Beträgt die Quantumdauer 60 Sekunden, kann es eine 60-sekündige Verzögerung geben, bevor ein Ereignisbatch verwendet wird, um Benachrichtigungen zu erstellen.
  • Der Generator muss Ereignisse und Abonnements zuordnen, um Benachrichtigungen zu generieren. Die Zuordnung erfolgt durch mindestens eine Transact-SQL-Abfrage. Die Leistung dieser Abfragen bestimmt die Wartezeit beim Generieren von Benachrichtigungen. Im Allgemeinen nimmt der Prozess mehr Zeit in Anspruch, je mehr Ereignisse und Abonnements gleichzeitig bewertet werden. Optimierte Regeln und sorgfältig ausgewählte Indizes können die Wartezeit für die Zuordnung verkürzen.
  • Der Verteiler funktioniert nach einem Zeitplan, der von dem Wert der QuantumDuration-Eigenschaft des Verteilers bestimmt wird. Wie beim Generator gilt, dass es bei einer Quantumdauer von 60 Sekunden zu einer 60-sekündigen Verzögerung kommen kann, bevor ein Benachrichtigungsbatch vom Verteiler verarbeitet wird.
  • Der Verteiler muss Benachrichtigungen formatieren und sie für die Übermittlung verpacken. Die Formatierung wird von einem Inhaltsformatiererobjekt ausgeführt. Eine komplexe Formatierung kann länger dauern als eine einfache Formatierung, und das Senden der formatierten Benachrichtigung an einen Übermittlungsdienst nimmt ebenfalls einige Zeit in Anspruch. So kann z. B. das Senden einer Benachrichtigung an einen HTTP-Server bis zu 30 Sekunden dauern.

Sobald der Verteiler die Benachrichtigung an den Übermittlungsdienst, z. B. einen SMTP-Server (Simple Mail Transfer Protocol), gesendet hat, hat Notification Services keine Kontrolle mehr über die Wartezeit beim Senden von Benachrichtigungen.

Muss Microsoft Visual Studio 2005 installiert werden, um Notification Services-Anwendungen zu entwickeln?

Nein, Microsoft Visual Studio ist nicht erforderlich, kann die Entwicklung jedoch vereinfachen.

Wenn Sie eine Anwendung entwickeln, die die standardmäßigen Ereignisanbieter und Inhaltsformatierer verwendet, können Sie die Anwendung erstellen, indem Sie eine XML-Anwendungsdefinitionsdatei (Application Definition File, ADF) erstellen und dann eine XML-Instanz als Host für die Anwendung festlegen, indem Sie eine Instanzkonfigurationsdatei (Instance Configuration File, ICF) erstellen. Sie können diese XML-Dateien mithilfe eines beliebigen Text- oder XML-Editors erstellen.

Wenn Sie eine Anwendung mithilfe von Notification Services Management Objects (NMO) erstellen möchten oder wenn Sie Abonnementverwaltungsschnittstellen, benutzerdefinierte Ereignisanbieter und Inhaltsformatierer erstellen, können Sie die Visual Studio-Entwicklungsumgebung verwenden, um diese Objekte zu erstellen. Es ist jedoch nicht notwendig, Visual Studio zu verwenden. Sie können einen beliebigen Texteditor zum Schreiben des Codes verwenden. Sie müssen das Microsoft .NET Framework SDK installieren und Ihren Code kompilieren.

Welche relativen Vorteile bieten ein gehosteter Ereignisanbieter und ein nicht gehosteter Ereignisanbieter?

Das Implementieren eines gehosteten Anbieters bedeutet im Allgemeinen weniger Arbeit bei der Entwicklung, da die Notification Services-Instanz die Notification Services-API lädt und den zum Aktivieren des Ereignisanbieters verwendeten Zeitplan verwaltet. Gehostete Anbieter können außerdem wie andere Notification Services-Komponenten und -Dienste aktiviert und deaktiviert werden.

Nicht gehostete Ereignisanbieter sind nützlich, wenn Sie über eine vorhandene Infrastruktur verfügen, die Ereignisse übermitteln kann, z. B. eine Customer-Relations-Management-Anwendung oder eine Webanwendung. Nicht gehostete Ereignisanbieter sind nur in der Anwendungsdefinitionsdatei (Application Definition File, ADF) aufgelistet, sodass nur von Abonnementklassen auf sie verwiesen werden kann.

Ich verfüge bereits über eine Abonnementverwaltungsanwendung in nicht verwaltetem Code. Kann ich Ihre API aus meiner Anwendung aufrufen?

Von Notification Services wird COM-Interop für einfache Abonnements unterstützt. Sie können jedoch keine bedingungsbasierten Abonnements mit COM-Interop erstellen, da Klassen im Microsoft.SqlServer.NotificationServices.Rules-Namespace keine Unterstützung für COM-Interop bieten.

Weitere Informationen finden Sie unter COM-Interop mit Notification Services.

Siehe auch

Aufgaben

Beheben von häufig auftretenden Notification Services-Problemen
Konfigurieren der Notification Services-Ereignisprotokollierung
Verwenden von Ereignismeldungen

Hilfe und Informationen

Informationsquellen für SQL Server 2005