Criando contratos do Service Broker

Contratos definem o nome de uma tarefa comercial específica e listam os tipos de mensagem usados naquela tarefa. Os contratos do Service Broker definem duas funções de serviço diferentes: o iniciador e o destino. O iniciador de uma conversação começa a conversação enviando uma mensagem ao destino. O contrato que a conversação usa define qual função de serviço pode enviar um determinado tipo de mensagem.

Para cada tarefa que o serviço executa, crie um contrato que inclui os tipos de mensagem para cada etapa na tarefa. Para cada tipo de mensagem, especifique se o tipo da mensagem é enviado do iniciador para o destino, do destino para o iniciador ou nas duas direções.

Um contrato não especifica mensagem de solicitação ou o número de mensagens de um tipo específico que possa ser enviado. O Service Broker requer que o iniciador envie a primeira mensagem em uma conversação de caixa de diálogo. Depois da primeira mensagem, não há requisitos de solicitação.

Mais de um contrato pode usar os mesmos tipos de mensagem. Por exemplo, uma mensagem que consiste em um documento XML que contém um número de peça ou quantidade pode ser útil em uma tarefa que aceita um pedido de um cliente, uma tarefa que gerencia o estoque e uma tarefa que solicita a remessa. Cada tarefa corresponde a um contrato distinto, mas todos os três contratos podem usar o mesmo tipo de mensagem.

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