Iniciando e interrompendo a fila

Use a instrução ALTER QUEUE para iniciar e interromper uma fila. Quando uma fila é iniciada, ela está disponível para enviar e receber mensagens. Quando uma fila é interrompida, o Agente de Serviços não entregará novas mensagens à fila e não permitirá que aplicativos recebam mensagens dessa fila.

Os administradores criam freqüentemente filas em um estado indisponível. Isso impede que o Agente de Serviços coloque mensagens na fila até que todos os objetos de um serviço sejam criados. Quando o serviço estiver pronto para receber mensagens, o administrador torna a fila disponível com a seguinte instrução:

ALTER QUEUE dbo.ExpenseQueue WITH STATUS = ON ;

A instrução a seguir torna a fila indisponível para recebimento:

ALTER QUEUE dbo.ExpenseQueue WITH STATUS = OFF ;

Quando uma fila está indisponível para recebimento, um aplicativo não pode processar as mensagens na fila. Como o Agente de Serviços garante que uma mensagem apenas deixa a fila como parte de uma operação de recebimento, não há como remover mensagens de uma fila interrompida. Como o Agente de Serviços foi projetado para permitir manutenção enquanto a fila continua a receber mensagens, raramente é necessário interromper uma fila após esta estar disponível. Como a maioria dos procedimentos armazenados de ativação são finalizados quando uma operação RECEIVE falha ou quando nenhuma mensagem está disponível, um motivo para interromper a fila é substituir um procedimento armazenado de ativação para um serviço que recebe mensagens constantemente.

Quando chega uma mensagem para uma indisponível, o Agente de Serviços mantém a mensagem na fila de transmissão para o banco de dados, em vez de entregar a mensagem à fila.

Consulte também

Referência