Aplicativos do Service Broker

Aplica-se a:SQL ServerAzure SQL Managed Instance

Os aplicativos do Service Broker são compostos por um ou mais programas e os objetos de banco de dados que esses programas usam. Os aplicativos se comunicam criando conversas entre componentes independentes chamados serviços e, em seguida, trocando mensagens dentro dessas conversas. Os aplicativos usam o Service Broker executando instruções Transact-SQL em um banco de dados do SQL Server.

Componentes de aplicação

Um aplicativo do Service Broker é composto por:

  • Um ou mais programas que implementam uma tarefa ou um conjunto de tarefas relacionado. Fora do SQL Server, os aplicativos podem ser escritos em qualquer ambiente de programação que possa executar instruções Transact-SQL no SQL Server. Dentro do SQL Server, os aplicativos podem ser escritos como procedimentos armazenados usando Transact-SQL ou uma linguagem compatível com CLR (Common Language Runtime).

  • Um serviço que expõe as tarefas a outros serviços. Um serviço é um objeto do Service Broker que fornece um nome endereçável para um conjunto de tarefas relacionadas. Outros serviços iniciam conversas com este serviço para executar as tarefas.

  • Um contrato e tipos de mensagem que definem a estrutura e direção das mensagens que são usadas nas comunicações entre os serviços.

  • Uma fila para guardar mensagens destinadas ao serviço.

  • Opcionalmente, rotas e ligações de serviço remoto. As rotas associam um endereço de rede ao nome de um serviço remoto. As associações de serviço remoto associam um nome de serviço a uma entidade de banco de dados local. O Service Broker usa o certificado associado à entidade de segurança especificada para lidar com a autorização para o serviço remoto e a criptografia das mensagens trocadas com o serviço remoto. O Service Broker permite que as rotas e as ligações de serviço remoto sejam configuradas enquanto o aplicativo está em implantação sem exigir alterações no aplicativo. Isso permite que os administradores movam serviços e alterem credenciais de segurança sem alterações no código do aplicativo. Para obter mais informações sobre como configurar rotas e ligações de serviço remoto, consulte Administração (Service Broker).

Corretor de Serviços DML

Normalmente, um aplicativo configura os objetos de definição de serviço no momento da instalação. Durante a execução, o aplicativo envia e recebe mensagens usando o DML (Service Broker Data Manipulation Language). As declarações DML se enquadram em três grandes categorias: mensagens, conversas e grupos de conversa:

Messages

O Service Broker fornece as seguintes operações para dar suporte ao trabalho com mensagens:

  • A SEND declaração envia uma mensagem sobre uma conversa específica.

  • A instrução RECEIVE recebe uma ou mais mensagens de uma fila. Todas as mensagens recebidas pertencem ao mesmo grupo de conversação.

Conversas

O Service Broker fornece as seguintes operações para dar suporte ao trabalho com conversas:

  • A BEGIN DIALOG CONVERSATION declaração inicia uma conversa entre dois serviços. Como a conversa envolve exatamente dois serviços, a conversa é um diálogo.

  • A END CONVERSATION declaração encerra um dos lados de uma conversa.

  • A instrução BEGIN CONVERSATION TIMER entrega uma mensagem de temporizador de diálogo para um dos lados de uma conversa num momento específico.

  • A GET_TRANSMISSION_STATUS instrução retorna uma descrição do último erro de transmissão de uma conversa. Se a última tentativa de transmitir uma mensagem para a conversa for bem-sucedida, a instrução não retornará uma descrição.

Grupos de conversação

O Service Broker fornece duas operações para trabalhar com grupos de conversação:

  • A GET CONVERSATION GROUP instrução retorna o identificador do grupo de conversação para a próxima mensagem a ser recebida na fila. A declaração também bloqueia o grupo de conversa.

  • A MOVE CONVERSATION declaração move uma conversa de um grupo de conversação para outro. A instrução bloqueia o grupo de conversação original e o grupo de conversação de destino.