Criar serviços do Service Broker

Aplica-se a:SQL ServerAzure SQL Managed Instance

A definição de um serviço do Service Broker inclui os nomes dos contratos para os quais o serviço é um destino. Um serviço de destino representa um endereço que aceita solicitações para as tarefas identificadas pelos contratos especificados pelo serviço. Um serviço inicial representa um endereço de retorno para uma conversa com um serviço de destino.

Um serviço representa um processo de negócios como um conjunto distinto de tarefas. Cada contrato dentro do serviço representa uma tarefa específica. Um serviço pode especificar mais de um contrato e um contrato pode ser usado por mais de um serviço.

Cada serviço usa uma fila para armazenar mensagens. As mensagens enviadas para o serviço são entregues na fila. Em geral, os aplicativos são mais fáceis de implementar quando apenas um serviço usa uma determinada fila. No entanto, para flexibilidade, o Service Broker permite que vários serviços especifiquem a mesma fila. Nesse caso, o aplicativo trata todas as mensagens do mesmo tipo da mesma maneira ou inspeciona o nome do tipo de mensagem e o nome do serviço para determinar como processar a mensagem. Essa estratégia pode ser conveniente quando um aplicativo suporta várias versões do mesmo serviço.

O formato de rede de uma mensagem inclui o nome do serviço. Portanto, os nomes de serviço geralmente são escolhidos para evitar problemas de agrupamento e conflitos de nomenclatura. Para obter mais informações sobre nomenclatura, consulte Objetos do Name Service Broker.

Para criar um serviço, você deve fazer o seguinte:

  1. Crie tipos de mensagem que definam os dados que podem ser enviados para frente e para trás.

  2. Crie um contrato que identifique os tipos de mensagem que podem ser usados e qual ponto de extremidade pode enviá-los para realizar uma tarefa específica.

  3. Crie um aplicativo para receber, processar e enviar mensagens conforme necessário para realizar determinada tarefa.

  4. Crie uma fila para armazenar as mensagens de entrada para o serviço. Você pode associar a fila a um procedimento armazenado de ativação para que o agente ative automaticamente o procedimento armazenado para processar mensagens à medida que as mensagens chegam.

  5. Crie um serviço e associe-o à fila que receberá as mensagens para o serviço. O serviço expõe os contratos que definem as tarefas que o serviço executará em nome de outros serviços. O serviço não precisa especificar contratos para tarefas que o serviço solicita de outros serviços.

As etapas exatas envolvidas na criação de um serviço podem diferir um pouco, dependendo das necessidades específicas do serviço. Por exemplo, quando você cria um serviço para lidar com notificações de eventos, o tipo de mensagem e o contrato já estão definidos pelo SQL Server, portanto, não há necessidade de criá-los.