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.
Aplica-se:SQL Server
Para implementar uma notificação de evento, você deve primeiro 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 de diálogo do Service Broker deve ser configurada para notificações de eventos que enviam mensagens para um Service Broker em um servidor remoto. A segurança do diálogo deve ser configurada manualmente de acordo com o modelo de segurança completo.
Criando o serviço de destino
Não é necessário criar um serviço que inicie o Service Broker, pois o Service Broker inclui o tipo de mensagem específica e o contrato de notificação de evento a seguir:
https://schemas.microsoft.com/SQL/Notifications/PostEventNotification
O serviço de destino que recebe as notificações de eventos deve honrar esse contrato preexistente.
Para criar um serviço de destino:
Crie uma fila para receber mensagens.
Observação
A fila recebe o seguinte tipo de mensagem:
http://schemas.microsoft.com/SQL/Notifications/QueryNotification.Crie um serviço na fila que referencie o contrato de notificações de evento.
Crie uma rota no serviço para definir o endereço para o qual o Service Broker deve enviar mensagens para o serviço. Para notificações de evento que visem 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 visar um serviço em um servidor remoto, tanto o servidor de origem, quanto o servidor de destino devem ter rotas definidas neles mesmos a fim de garantir a comunicação nas duas direções.
O exemplo a seguir cria uma fila, um serviço associado à fila e uma rota no serviço para processar mensagens do contrato de notificação de evento.
CREATE QUEUE NotifyQueue ;
GO
CREATE SERVICE NotifyService
ON QUEUE NotifyQueue
(
[http://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 por meio da instrução Transact-SQL CREATE EVENT NOTIFICATION e são removidas por meio da instrução DROP EVENT NOTIFICATION. Para modificar uma notificação de evento, você deve descartar e recriar a notificação de evento.
O exemplo a seguir cria a notificação de evento CreateDatabaseNotification. Essa notificação envia uma mensagem sobre quaisquer eventos CREATE_DATABASE que ocorrerem no servidor para o serviço NotifyService criado previamente.
CREATE EVENT NOTIFICATION CreateDatabaseNotification
ON SERVER
FOR CREATE_DATABASE
TO SERVICE 'NotifyService', '8140a771-3c4b-4479-8ac0-81008ab17984' ;
Cuidado
As notificações de evento reconhecem os eventos CREATE_SCHEMA e as definições de <schema_element> de instruções CREATE SCHEMA como eventos separados. Por exemplo, suponha que seja criada uma notificação de evento nos eventos CREATE_SCHEMA e CREATE_TABLE e você execute o lote a seguir.
CREATE SCHEMA s
CREATE TABLE t1 (col1 int)
Nesse caso, a notificação de evento é gerada duas vezes: uma vez em que 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 CREATE SCHEMA correspondentes, ou incorpore lógica ao seu aplicativo para evitar a captura de dados de evento indesejados.
Para criar uma notificação de evento
Para descartar uma notificação de evento
Confira também
Obter informações sobre notificações de eventos
DADOS DE EVENTOS (Transact-SQL)