Udostępnij za pośrednictwem


Implementowanie powiadomień o zdarzeniach

Do wykonania powiadomienie o zdarzeniu, należy najpierw utworzyć usługa miejsce docelowe do odbierania powiadomienie o zdarzenius, a następnie utworzyć powiadomienie o zdarzeniu.

Ważna informacjaWażne:

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ń musi być skonfigurowany ręcznie, zgodnie z modelem Zabezpieczenia pełne.Aby uzyskać więcej informacji, zobacz Okno dialogowe zabezpieczeń powiadomień o zdarzeniach.

Tworzenie usługi docelowej

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óry odbiera zdarzenie powiadomienia muszą przestrzegać istniejące kontrakt.

Tworzenie usługa miejsce docelowe:

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

    Ostrzeżenie

    Kolejka otrzymuje następujący typ komunikatu: 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órej Service Broker wysyła komunikaty do usługa.Powiadomień o zdarzeniach, miejsce docelowe usługa w tej samej bazie danych, określ ADDRESS = 'LOCAL'.

    Ostrzeżenie

    Service Broker Routing Określa usługa, która odbiera powiadomienie wiadomości.Jeśli powiadomienie o zdarzeniu celów usługa na serwerze zdalnym serwerze źródłowym i serwer miejsce docelowe muszą mieć zdefiniowane na nich upewnij się, że występuje dwustronną komunikację trasy.Aby uzyskać więcej informacji, zobacz Service Broker routingu.

Poniższy przykład tworzy kolejki i trasa usługi obsługi wiadomości z kolejki, usługa 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 tworzenia Service Broker miejsce docelowe usługi, zobacz Zalety programowania przy użyciuService Broker.

Tworzenie powiadomienie o zdarzeniu

Powiadomienia o zdarzeniach są tworzone za pomocą Transact-SQL instrukcja tworzenia powiadomienie o zdarzeniu i są opuszczane za pomocą instrukcja DROP powiadomienie o zdarzeniu.Aby zmodyfikować powiadomienie o zdarzeniu, należy usunąć i odtworzyć powiadomienie o zdarzeniu.

Poniższy przykład tworzy powiadomienie o zdarzeniu CreateDatabaseNotification.Powiadomienie to wysyła komunikat o CREATE_DATABASE zdarzenie występującego na serwerze, aby NotifyService usługa, który został wcześniej utworzony.

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

Powiadomienia o zdarzeniach rozpoznaje zdarzeń CREATE_SCHEMA i <schema_element> Definicje instrukcje tworzenia SCHEMATU jako osobne zdarzenia.Na przykład powiadomienie o zdarzeniu jest tworzony zdarzenie zarówno CREATE_SCHEMA jak i CREATE_TABLE i uruchom następujące partia.

CREATE SCHEMA s

CREATE TABLE t1 (col1 int)

W takim przypadek powiadomienie o zdarzeniu jest wywoływane dwa razy: Onne czas po wystąpieniu zdarzenia CREATE_SCHEMA i ponownie po wystąpieniu zdarzenia CREATE_TABLE.Zaleca się, że można albo uniknąć tworzenia zdarzenie powiadomienia zdarzenie CREATE_SCHEMA i <schema_element> Teksty odpowiadające im definicje tworzenie SCHEMATU, ani kompilacji logiki do aplikacji, aby uniknąć przechwytywanie danych niepożądanych zdarzeń.

Aby utworzyć zdarzeniepowiadomienie

Aby usunąć zdarzeniepowiadomienie