Como eu habilito uma fila do agente de serviço quando ela está desabilitada?

1

Eu tenho um cenário em que um aplicativo externo está monitorando uma fila e, em seguida, realizando uma ação quando algo é colocado na fila. Acabei de concluir que isso acontecesse dentro de uma transação para tentar impedir que as coisas saíssem da fila se a ação falhasse. O que está acontecendo é que, sob certas condições, a fila será desativada se houver uma falha em meu aplicativo que faça com que a transação seja revertida.

O que estou procurando é uma maneira de ativar a fila sem abrir o SQL Server Management Studio.

    
por Aaron Weiker 10.12.2009 / 00:09

1 resposta

2

A detecção de mensagens suspeitas será ativada se 5 declarações RECEIVE consecutivas forem revertidas. não há como desabilitar isso, nem há como reativar a fila no leitor de fila. Como a desativação é assíncrona, ela pode desativar a fila após sua lógica tenta reativar uma fila desativada.

A solução adequada é nunca reverter intencionalmente e lidar com todos os erros. No entanto, essa nem sempre é possível . Minha recomendação seria conectar uma notificação de evento na fila do evento QUEUE_DISABLED. Isso acionará uma notificação e você poderá reagir a essa notificação.

As filas podem ser reativadas com:

ALTER QUEUE [queuename] WITH STATUS = ON;
    
por 10.12.2009 / 03:45