Udostępnij za pośrednictwem


Troubleshooting Database Mail: Mail queued, no entries in sysmail_event_log or Windows Application Event Log

W tym temacie opisano sposób rozwiązywania problemu, w którym pomyślnie są umieszczane w kolejce wiadomości e-mail, ale nie działanie programu zewnętrznego jest wyświetlane w sysmail_event_log widoku lub w dzienniku zdarzeń aplikacji systemu Windows.

Korzysta z poczty bazy danych Service Broker do obsługi poczty e-mail kolejkowania wiadomości. Jeśli korespondencja bazy danych jest zatrzymana lub Service Broker dostarczanie wiadomości nie jest aktywny w msdb bazy danych, baza danych korespondencji bazy danych wiadomości w kolejce, 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.

Wykonanie poniższych 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 aktywny 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 Uaktywnianie dostarczanie wiadomości usługa Broker w bazy danych (języka Transact-SQL).

Poczta bazy danych polega na pewną liczbę wewnętrznych procedur przechowywanych.Aby zmniejszyć powierzchnię obszaru, następujące procedury przechowywane są wyłączone na nowej instalacji SQL Server. Aby włączyć te procedura przechowywana, należy użyć Opcja poczty XPs bazy danych of the sp_configure systemu procedura przechowywana.

Poczta bazy danych mogą zostać zatrzymane w msdb bazy danych.Aby sprawdzić stan korespondencji bazy danych, należy wykonać następującą instrukcję:

EXECUTE dbo.sysmail_help_status_sp;

Do uruchomienia korespondencji bazy danych w bazie danych hosta poczty, uruchom następujące polecenie msdb bazy danych:

EXECUTE dbo.sysmail_start_sp;

Service Broker sprawdza, czy okno dialogowe okres istnienia dla wiadomości po jej uaktywnieniu, w związku z tym, komunikaty, które były Service Broker Kolejka transmisji dłużej, niż istnienia skonfigurowanych w oknie dialogowym natychmiast kończy się niepowodzeniem. Poczta bazy danych 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 dotyczących konfigurowania okres istnienia okna dialogowego, korzystającej z poczty bazy danych zobacz sysmail_configure_sp (Transact-SQL).