Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Managed Instance
Uma fila contém mensagens de entrada para um serviço. Para simplificar o processamento, os aplicativos normalmente criam uma fila por serviço em vez de usar a mesma fila para vários serviços.
Definir a opção de retenção para uma fila faz com que as mensagens sejam retidas depois de processadas. Como a retenção reduz o desempenho do aplicativo, especifique a retenção somente se o aplicativo exigir acesso persistente às mensagens exatas enviadas e recebidas. Para obter mais informações sobre retenção de mensagens, consulte Retenção de mensagens.
Para aplicativos que não usam ativação interna, não especifique uma cláusula de ativação na definição de fila.
Para aplicativos que usam ativação interna, a definição de fila inclui o nome do procedimento armazenado, o número máximo de leitores para o SQL Server iniciar e o nome da entidade de banco de dados a ser representada antes de iniciar o procedimento armazenado.
O nome de uma fila não está incluído no formato de rede de uma mensagem. As filas são objetos de propriedade do esquema. Portanto, os nomes de fila seguem as convenções de nomenclatura do SQL Server. Para obter mais informações sobre nomenclatura, consulte Objetos do Name Service Broker.
Ativação do procedimento armazenado
Uma fila pode ser associada a um procedimento armazenado. O SQL Server ativa o procedimento armazenado quando há mensagens na fila a serem processadas. Esse processo de ativação automática permite que um aplicativo do Service Broker seja dimensionado dinamicamente de acordo com a carga de processamento atual no aplicativo. Cada procedimento armazenado ativado pelo Service Broker é executado em um thread separado. Quando uma fila especifica um procedimento armazenado, o Service Broker inicia novas instâncias do procedimento armazenado conforme necessário, até o número máximo de instâncias especificado para a fila.
Um procedimento armazenado ativado normalmente processa uma ou mais mensagens e retorna uma resposta ao serviço que originou as mensagens. Quando as mensagens chegam mais rápido do que o procedimento armazenado processa as mensagens, o Service Broker inicia outra instância do procedimento armazenado, até o número máximo definido pela fila. Um procedimento armazenado ativado normalmente é encerrado quando o procedimento não encontra mensagens disponíveis na fila por um tempo.
Usar procedimentos armazenados de ativação é uma maneira comum de projetar aplicativos do Service Broker. No entanto, outros desenhos ou modelos podem adequar-se melhor às necessidades de uma aplicação específica. Qualquer aplicativo que possa executar lotes de Transact-SQL no SQL Server pode enviar e receber mensagens. As mensagens também podem ser processadas por qualquer procedimento armazenado, independentemente de o procedimento armazenado ser ativado pelo SQL Server, iniciado pelo SQL Server Agent, executado por um aplicativo externo ou executado interativamente a partir de uma ferramenta como o SQL Server Management Studio ou o SQL Server Express Management Studio.