Criar aplicativos do Service Broker

Aplica-se a:SQL ServerAzure SQL Managed Instance

Esta seção fornece uma visão geral da estrutura de um aplicativo do Service Broker, discute algumas das estratégias mais comuns para iniciar um aplicativo que usa o Service Broker e descreve as etapas básicas para receber e processar mensagens.

O aplicativo para um serviço inicial usa a BEGIN DIALOG instrução para especificar informações sobre os serviços em cada ponto de extremidade e o contrato de serviço que o aplicativo usará para se comunicar. O aplicativo usa a SEND instrução para enviar a primeira mensagem da conversa para o serviço de destino. O aplicativo deve estar preparado para receber e processar mensagens do Service Broker, mesmo que o contrato não permita que o serviço de destino retorne mensagens. O aplicativo inicial geralmente é implementado como dois componentes separados. Um componente inicia a conversa; O outro componente processa mensagens que chegam na fila.

O aplicativo para um serviço de destino recebe e processa mensagens do serviço inicial. O aplicativo também deve estar preparado para receber e processar mensagens do Service Broker.

Dependendo das necessidades do serviço, a parte do aplicativo que processa a fila pode ser iniciada de várias maneiras diferentes. Para obter mais informações sobre como iniciar um aplicativo que usa o Service Broker, consulte Escolher uma estratégia de inicialização.

No entanto, o aplicativo é iniciado, o aplicativo inicia uma transação e usa a instrução para retirar uma RECEIVE mensagem da fila. O aplicativo extrai os dados das mensagens e faz qualquer processamento necessário. Se necessário, o aplicativo usa a SEND instrução para enviar mensagens para o outro lado da conversa. Em seguida, o aplicativo confirma a transação. Para maior eficiência, o aplicativo pode processar várias mensagens dentro da mesma transação. Os serviços que mantêm o estado geralmente usam a GET CONVERSATION GROUP instrução para bloquear um grupo de conversação, recuperar o estado do grupo de conversação e, em seguida, processar várias mensagens para o grupo de conversação.

A conversa continua, usando SEND e RECEIVE declarações para transmitir mensagens entre os pontos de extremidade. A qualquer momento, se necessário, qualquer participante da conversa pode usar BEGIN DIALOG para iniciar uma conversa com outro serviço para obter informações adicionais. Por exemplo, um aplicativo que está processando uma notificação de evento pode iniciar outra conversa com um serviço que fornece informações pessoais para recuperar informações de contato atuais antes de enviar um alerta.

Quando a conversa atingir seu objetivo, o aplicativo no ponto final apropriado usará uma END CONVERSATION instrução para encerrar a conversa. O outro participante recebe a END CONVERSATION mensagem e também emite uma END CONVERSATION mensagem do seu lado. Uma vez que ambos os participantes emitiram END CONVERSATION mensagens, a conversa termina.

Se ocorrer um erro, um participante da conversa pode indicar falha ao encerrar a conversa usando a WITH ERROR cláusula. O uso da WITH ERROR cláusula encerra a conversa e envia uma mensagem de erro do Service Broker para o outro participante da conversa.

Se o Service Broker detetar um erro ou o tempo de vida da conversa expirar, o Service Broker encerrará a conversa e retornará uma mensagem de erro para os participantes ativos. Se o Service Broker não puder estabelecer uma conversa, o único participante ativo será o aplicativo iniciador e o erro será entregue ao serviço inicial. Se um participante já tiver terminado a conversa, a mensagem de erro será entregue ao outro participante. Caso contrário, o erro é entregue a ambos os participantes da conversa.

Nesta secção

Artigo Description
Escolha uma estratégia de startup Discute algumas das estratégias mais comuns para iniciar um aplicativo que usa o Service Broker.
Esboço do aplicativo Service Broker Descreve as etapas básicas para receber e processar mensagens.