Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para implementar uma notificação de evento, primeiro você deve criar um serviço de destino para receber notificações de evento e, em seguida, criar a notificação de evento.
Importante
A segurança da caixa de diálogo do Service Broker deve ser configurada para notificações de evento que enviam mensagens para um agente de serviço em um servidor remoto. A segurança da caixa de diálogo deve ser configurada manualmente de acordo com o modelo de segurança completo.
Criando o serviço de destino
Você não precisa criar um serviço de iniciação do Service Broker porque o Service Broker inclui o seguinte tipo de mensagem e contrato específicos para notificações de evento:
https://schemas.microsoft.com/SQL/Notifications/PostEventNotification
O serviço de destino que recebe notificações de evento deve cumprir esse contrato pré-existente.
Para criar um serviço de destino:
Crie uma fila para receber mensagens.
Observação
A fila recebe o seguinte tipo de mensagem:
https://schemas.microsoft.com/SQL/Notifications/QueryNotification.Crie um serviço na fila que faça referência ao contrato de notificações de eventos.
Crie uma rota no serviço para definir o endereço para o qual o Service Broker envia mensagens para o serviço. Para notificações de evento direcionadas a um serviço no mesmo banco de dados, especifique
ADDRESS = 'LOCAL'.Observação
O roteamento do Service Broker determina o serviço que recebe as mensagens de notificação. Se a notificação de evento for direcionada a um serviço em um servidor remoto, o servidor de origem e o servidor de destino deverão ter rotas definidas neles para garantir que a comunicação bidirecional ocorra.
O exemplo a seguir cria uma fila, um serviço na fila e uma rota no serviço para lidar com mensagens do contrato de notificação de eventos.
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
Criando a notificação de evento
As notificações de evento são criadas usando a instrução Transact-SQL CREATE EVENT NOTIFICATION e descartadas usando a instrução DROP EVENT NOTIFICATION. Para modificar uma notificação de evento, você deve remover e recriar a notificação de evento.
O exemplo a seguir cria a notificação CreateDatabaseNotificationde evento. Essa notificação envia uma mensagem sobre qualquer CREATE_DATABASE evento que ocorra no servidor para o NotifyService serviço que foi criado anteriormente.
CREATE EVENT NOTIFICATION CreateDatabaseNotification
ON SERVER
FOR CREATE_DATABASE
TO SERVICE 'NotifyService', '8140a771-3c4b-4479-8ac0-81008ab17984' ;
Cuidado
As notificações de eventos reconhecem os eventos CREATE_SCHEMA e as definições de <schema_element> das instruções CREATE SCHEMA como eventos separados. Por exemplo, uma notificação de evento é criada nos eventos CREATE_SCHEMA e CREATE_TABLE e você executa o lote a seguir.
CREATE SCHEMA s
CREATE TABLE t1 (col1 int)
Nesse caso, a notificação de evento é gerada duas vezes: uma vez quando o evento CREATE_SCHEMA ocorre, e novamente quando o evento CREATE_TABLE ocorre. Recomendamos que você evite criar notificações de evento tanto nos eventos CREATE_SCHEMA quanto nos textos <schema_element> de quaisquer definições correspondentes de CREATE SCHEMA, ou que você crie lógica em seu aplicativo para evitar capturar dados de eventos indesejados.
Para criar uma notificação de evento
Para remover uma notificação de evento
Consulte Também
Obter informações sobre notificações de evento
EVENTDATA (Transact-SQL)