Problembehandlung bei Datenbank-E-Mail: E-Mail in der Warteschlange, keine Einträge in sysmail_event_log oder im Windows-Anwendungsereignisprotokoll

In diesem Thema wird beschrieben, wie die Problembehandlung ausgeführt wird, wenn E-Mail-Nachrichten erfolgreich in der Warteschlange angeordnet werden, in der sysmail_event_log-Sicht oder im Windows-Anwendungsereignisprotokoll jedoch keine Aktivität des externen Programms angezeigt wird.

Die Datenbank-E-Mail erfordert Service Broker für das Anordnen von E-Mail-Nachrichten in Warteschlangen. Wenn die Datenbank-E-Mail beendet wird oder wenn die Service Broker-Nachrichtenübermittlung in der msdb-Datenbank nicht aktiviert ist, reiht die Datenbank-E-Mail Nachrichten in die Datenbank-Warteschlange ein, kann die Nachrichten jedoch nicht übermitteln. In diesem Fall verbleiben die Service Broker-Nachrichten in der Service Broker-E-Mail-Warteschlange. Von Service Broker wird das externe Programm nicht aktiviert. Daher gibt es keine Protokolleinträge in sysmail_event_log und keine Aktualisierungen des Elementstatus in sysmail_mailitems und den zugehörigen Sichten.

Führen Sie die folgende Anweisung aus, um zu überprüfen, ob die Datenbank-E-Mail aktiviert ist:

SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb';

Der Wert 0 zeigt an, dass die Service Broker-Nachrichtenübermittlung in der msdb-Datenbank nicht aktiviert ist. Aktivieren Sie Service Broker in der Datenbank, um das Problem zu beheben. Informationen zum Aktivieren der Service Broker-Nachrichtenübermittlung finden Sie unter Vorgehensweise: Aktivieren von Service Broker-Nachrichtenübermittlung in Datenbanken (Transact-SQL).

Datenbank-E-Mail basiert auf verschiedenen intern gespeicherten Prozeduren. Um den Oberflächenbereich zu reduzieren, werden diese gespeicherten Prozeduren bei neuen Installationen von SQL Server deaktiviert. Verwenden Sie zum Aktivieren dieser gespeicherten Prozeduren die Option Database Mail XPs der gespeicherten Systemprozedur sp_configure.

Die Datenbank-E-Mail kann in der msdb-Datenbank beendet werden. Führen Sie folgende Anweisung aus, um den Status von Datenbank-E-Mail zu prüfen:

EXECUTE dbo.sysmail_help_status_sp;

Führen Sie den folgenden Befehl in der msdb-Datenbank aus, um die Datenbank-E-Mail in einer Mailhost-Datenbank zu starten:

EXECUTE dbo.sysmail_start_sp;

Service Broker untersucht die Dialogfeld-Lebensdauer für Nachrichten, wenn es aktiviert ist. Daher schlagen Nachrichten, die sich länger als die konfigurierte Dialogfeld-Lebensdauer in der Service Broker-Übertragungswarteschlange befinden, sofort fehl. Die Datenbank-E-Mail aktualisiert den Status fehlgeschlagener Nachrichten in der sysmail_allitems-Sicht und zugehörigen Sichten. Sie müssen entscheiden, ob die E-Mail-Nachrichten erneut gesendet werden sollen. Weitere Informationen zum Konfigurieren der von der Datenbank-E-Mail verwendeten Dialogfeld-Lebensdauer finden Sie unter sysmail_configure_sp (Transact-SQL).