Gestão do Estado

Aplica-se a:SQL ServerAzure SQL Managed Instance

Um aplicativo que mantém o estado normalmente armazena esse estado em tabelas de banco de dados. Como cada grupo de conversação tem um identificador exclusivo, esse identificador é normalmente usado como uma chave para a tabela de estados. O Service Broker também fornece retenção de mensagens para aplicativos que devem preservar as mensagens precisas enviadas e recebidas.

Muitos aplicativos não exigem estado. Em geral, um aplicativo mantém o estado se a tarefa envolver mais de uma mensagem e há informações sobre a tarefa que não podem ser armazenadas nas tabelas existentes para o banco de dados.

Por exemplo, um aplicativo que procura e retorna informações do cliente não requer estado e não usa uma tabela de estados. Por outro lado, um aplicativo que gerencia o atendimento de pedidos gera solicitações para vários outros serviços. Um programa que coordena solicitações para outros serviços geralmente usa uma tabela de estados para rastrear as solicitações. O aplicativo atualiza as tabelas de dados e limpa a tabela de estados quando todas as solicitações forem concluídas com êxito. Se uma solicitação retornar um erro, o aplicativo reenviará a solicitação ou usará a tabela de estados para enviar uma solicitação de compensação.

Um aplicativo também pode usar uma tabela de estados para fins de auditoria ou registro. O aplicativo salva as informações importantes sobre cada solicitação na tabela de estados. Nesse caso, o aplicativo não exclui informações da tabela de estados quando uma conversa é concluída.

Alguns aplicativos podem exigir um registro preciso das mensagens enviadas e recebidas enquanto a conversa está ativa. Para esse cenário, o Service Broker fornece retenção de mensagens.