Sintomas
Considere o seguinte cenário:
-
Você habilita o Microsoft SQL Server Service Broker (SSB) no banco de dados de grupo do SQL Server AlwaysOn.
-
Você desliga e reinicia o banco de dados.
-
Certifique-se de que a confirmação (ACK) seja recebida com êxito.
Nesse cenário, a mensagem não é removida da fila de transmissão, embora a confirmação seja recebida com êxito.
Causa
O problema ocorre porque, ao iniciar o banco de dados após o desligamento, o SQL Server não verifica se a tarefa de exclusão adiada da fila de transmissão é reutilizável. Ele pressupõe que a tarefa de exclusão de fila de transmissão adiada está ok.
Resolução
O problema foi corrigido primeiro na atualização cumulativa a seguir do SQL Server.
Atualização cumulativa 1 para SQL Server 2014 /en-us/help/2931693
Atualização cumulativa 9 para SQL Server 2012 SP1 /en-us/help/2931078
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Solução alternativa
Para contornar o problema, desfailover o grupo de disponibilidade do SQL Server para a réplica secundária (e execute o failback se for necessário).
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".