Partilhar via


Aplicativos do Service Broker

Os aplicativos do Service Broker são constituídos por um ou mais programas e pelos objetos de banco de dados que esses programas usam. Os aplicativos se comunicam criando conversações entre componentes independentes chamados serviços e trocando mensagens nessas conversações. Os aplicativos usam o Service Broker executando instruções Transact-SQL em um banco de dados do SQL Server.

Componentes de aplicativo

Um aplicativo Service Broker é composto de:

  • Um ou mais programas que implementam uma tarefa ou um conjunto relacionado de tarefas. Fora do SQL Server, os aplicativos podem ser gravados em qualquer ambiente de programação que possa executar instruções Transact-SQL no SQL Server. Dentro do SQL Server, os aplicativos podem ser gravados como procedimentos armazenados usando uma linguagem compatível com Transact-SQL ou 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 conversações com esse serviço para executar as tarefas.

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

  • Uma fila para manter as mensagens para o serviço.

  • Opcionalmente, rotas e associações de serviço remoto. Rotas associadas a endereço de rede com o nome de um serviço remoto. Associações de serviço remoto associam um nome de serviço a um banco de dados principal. O Service Broker usa o certificado associado à entidade especificada para controlar autorizações para o serviço remoto e a criptografia das mensagens trocadas com o serviço remoto. O Service Broker permite que rotas e associações de serviço remoto sejam configuradas enquanto o aplicativo está sendo implantado, 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 associações de serviço remoto, consulte Administração (Service Broker).

DML do Service Broker

Geralmente, um aplicativo instala os objetos de definição do serviço no momento da instalação. Durante a execução, o aplicativo envia e recebe mensagens usando DML (Linguagem de Manipulação de Dados) do Service Broker. As instruções DML se enquadram em três grandes categorias: mensagens, conversações e grupos de conversação:

Mensagens

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

  • A instrução SEND envia uma mensagem em uma conversação 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.

Conversações

O Service Broker fornece as seguintes operações para oferecer suporte ao trabalho de conversações:

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

  • A instrução END CONVERSATION termina um lado de uma conversação.

  • A instrução BEGIN CONVERSATION TIMER entrega uma mensagem de timer de diálogo a um lado de uma conversação em um momento específico.

  • A instrução GET_TRANSMISSION_STATUS retorna uma descrição do último erro de transmissão de uma conversação. Se a última tentativa para transmitir uma mensagem para a conversação teve êxito, 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 instrução GET CONVERSATION GROUP retorna o identificador de grupo de conversação para a próxima mensagem a ser recebida em uma fila. A instrução também bloqueia o grupo de conversação.

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