Rozwiązywanie problemów z poczty bazy danych: Wiadomości w kolejce, żadne wpisy w dzienniku zdarzeń aplikacji systemu Windows lub w sysmail_event_log
W tym temacie opisano sposób rozwiązywania problemu, gdy pomyślnie są umieszczane w kolejce wiadomości e-mail, ale brak aktywności programu zewnętrznego pojawia się w sysmail_event_log widoku lub w dzienniku zdarzeń aplikacji systemu Windows.
Poczta bazy danych opiera się na Service Broker dla usługi kolejkowania wiadomości e-mail.Jeżeli pocztę bazy danych zostanie zatrzymana lub Service Broker Dostarczanie wiadomości nie jest aktywowana w msdb bazy danych, kolejki poczty bazy danych wiadomości bazy danych, ale nie można dostarczyć wiadomości.In this case, the Service Broker messages remain in the Service Broker Mail queue.Service Broker does not activate the external program, so there are no log entries in sysmail_event_log and no updates to the item status in sysmail_allitems and the related views.
Wykonać następujące instrukcja do sprawdzenia, czy jest włączona poczta bazy danych:
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb';
Wartość 0 wskazuje, że Service Broker Dostarczanie wiadomości nie jest aktywowana w msdb bazy danych.Aby rozwiązać ten problem, należy uaktywnić Service Broker w bazie danych.Aby uzyskać informacje dotyczące uaktywniania Service Broker Dostarczanie wiadomości, zobacz Jak Aktywacja Service Broker dostarczanie wiadomości w bazach danych (Transact-SQL).
Poczta bazy danych zależy od liczby wewnętrznych procedur przechowywanych.Aby zmniejszyć obszar powierzchni, te procedury przechowywane są wyłączone na nowej instalacji SQL Server.Aby włączyć tych procedur przechowywanych, użyj opcję bazy danych poczty XPs z sp_configure systemowa procedura składowana.
Poczta bazy danych może być zatrzymana w msdb bazy danych.Aby sprawdzić stan bazy danych poczty, należy wykonać następujące instrukcja:
EXECUTE dbo.sysmail_help_status_sp;
Aby uruchomić pocztę bazy danych w bazie danych hosta poczty, uruchom następujące polecenie msdb bazy danych:
EXECUTE dbo.sysmail_start_sp;
Service Brokersprawdza, czy okno dialogowe okres istnienia wiadomości po uaktywnieniu; Dlatego wszystkie wiadomości, które zostały w Service Broker kolejki transmisji jest dłuższy niż okres istnienia skonfigurowane w oknie dialogowym natychmiast kończy się niepowodzeniem.Baza danych poczty aktualizuje stan niedostarczone wiadomości w sysmail_allitems i powiązane widoki.Należy zdecydować, czy ponownie wysłać wiadomości e-mail.Aby uzyskać więcej informacji o konfigurowaniu istnienia okno dialogowe używający poczty bazy danych, zobacz sysmail_configure_sp (języka Transact-SQL).