Udostępnij za pośrednictwem


Implementing Event Notifications

Aby zaimplementować powiadomienie o zdarzeniu, użytkownik musi najpierw utworzyć usługa docelowego do odbierania powiadomienie o zdarzeniu s, a następnie utwórz powiadomienie o zdarzeniu.

Important noteImportant Note:

Service Broker okno dialogowe zabezpieczeń, należy skonfigurować dla zdarzenie powiadomienia, które wysyłają wiadomości do usługa Broker na serwerze zdalnym.Okno dialogowe zabezpieczeń muszą być skonfigurowane ręcznie pełne zabezpieczenia modelu.Aby uzyskać więcej informacji zobaczDialog Security for Event Notifications.

Tworzenie usługa miejsce docelowe

Nie trzeba tworzyć Service Broker-inicjacji usługa, ponieważ Service Broker zawiera następujący typ komunikatu oraz kontrakt dla zdarzenie powiadomienia:

https://schemas.microsoft.com/SQL/Notifications/PostEventNotification

Usługa miejsce docelowe, która odbiera zdarzenie powiadomień musi przestrzegać tego kontrakt gotowe.

Aby utworzyć usługa miejsce docelowe:

  1. Utworzyć kolejkę do odbierania wiadomości.

    Uwaga

    Kolejki pojawi się komunikat następującego typu: https://schemas.microsoft.com/SQL/Notifications/QueryNotification.

  2. Tworzenie usługa na kolejkę, która odwołuje się do kontrakt zdarzenie powiadomienia.

  3. Utworzenie trasa na usługa, aby zdefiniować adres, do którego Service Broker wysyła wiadomości dla usługa. Dla zdarzenie powiadomienia, które współpracować z usługa w obrębie tej samej bazy danych, określanie ADDRESS = 'LOCAL'.

    Uwaga

    Service Broker Routing Określa usługa, która odbiera komunikaty powiadamiające.Jeśli powiadomienie o zdarzeniu elementy docelowe, usługa na serwerze zdalnym, zarówno na serwerze źródłowym, jak i na serwerze miejsce docelowem musi mieć trasy zdefiniowane na nich, aby upewnić się, że występuje dwustronną komunikację.Aby uzyskać więcej informacji zobaczusługa Broker routingu.

Poniższy przykład tworzy kolejki, usługa na kolejkę i trasa do obsługi wiadomości z usługi powiadomienie o zdarzeniu kontrakt.

CREATE QUEUE NotifyQueue ;
GO
CREATE SERVICE NotifyService
ON QUEUE NotifyQueue
(
[https://schemas.microsoft.com/SQL/Notifications/PostEventNotification]
);
GO
CREATE ROUTE NotifyRoute
WITH SERVICE_NAME = 'NotifyService',
ADDRESS = 'LOCAL';
GO

Aby uzyskać więcej informacji na temat sposobów tworzenia Service Broker Wybierz usługi, zobacz Korzyści wynikające z programowanie z usługa Broker.

Tworzenie powiadomienie o zdarzeniu

powiadomienie o zdarzeniu s są tworzone za pomocą Transact-SQL CREATE powiadomienie o zdarzeniu instrukcja i są usunięte za pomocą instrukcja DROP powiadomienie o zdarzeniu. Aby zmodyfikować powiadomienie o zdarzeniu, należy usunąć i ponownie utworzyć powiadomienie o zdarzeniu.

Poniższy przykład tworzy powiadomienie o zdarzeniu CreateDatabaseNotification. powiadomienie te wysyła wiadomość o CREATE_DATABASE zdarzenie, które pojawia się na serwerze, tak aby NotifyService Usługa, która uprzednio została utworzona.

CREATE EVENT NOTIFICATION CreateDatabaseNotification
ON SERVER
FOR CREATE_DATABASE
TO SERVICE 'NotifyService', '8140a771-3c4b-4479-8ac0-81008ab17984' ;

Ostrzeżenie

zdarzenie CREATE_SCHEMA rozpoznaje powiadomień o zdarzeniach, <schema_element> definicje instrukcji CREATE SCHEMA jako odrębne zdarzenie. Na przykład powiadomienie o zdarzeniu jest tworzony zdarzenie CREATE_SCHEMA i CREATE_TABLE i wykonywania następujących zadań wsadowych.

CREATE SCHEMA s

CREATE TABLE t1 (col1 int)

W takim przypadek powiadomienie o zdarzeniu powstaje dwa razy: Gdy wystąpi zdarzenie CREATE_SCHEMA czas Onne i ponownie, gdy zdarzenie CREATE_TABLE wystąpi. Zaleca się, że można albo uniknąć tworzenia powiadomień o zdarzeniach zdarzenie CREATE_SCHEMA oraz <schema_element> Teksty wszystkie odpowiadające im definicje CREATE SCHEMA lub logiki kompilacji do aplikacji w celu uniknięcia przechwytywanie danych zdarzenie niepożądane.

Aby utworzyć zdarzenie powiadomienie

Aby usunąć powiadomienie o zdarzeniu