Desafio: Comando KILL demorado (infinito)

A ideia desse post surgiu há 3 semanas durante um treinamento interno com a equipe de suporte. Desde então tivemos comemorações de Natal e Ano Novo. Espero que todos tenham aproveitado essa época. Aproveito para desejar a todos um ótimo ano de 2014!!!

O tópico de hoje é entender um conceito relacionado a threads e tarefas do SQL Server. Estava fazendo diagnósticos em um servidor e decidi usar o comando xp_cmdshell para procurar arquivos no sistema. Comecei assim:

image

Ótimo! Consegui o resultado esperado. O segundo passo foi executar um comando para procurar uma DLL específica, mas sem querer (por costume?) escrevi “notepad” na linha de comando. Eis que a query ficou executando e aquele círculo verde, rodando.

image

Minha reação foi executar o comando de KILL. Infelizmente nem isso foi capaz de cancelar a bobagem anterior. O comando xp_cmdshell ficou rodando e o comando KILL apresentou a mensagem de que estava tudo ok e logo seria completado (“ … in progress. Estimated rollback completion: 0%. Estimated time ramaining 0 seconds”).

image

Esse é o desafio: seria possível executar comandos que rodam infinitamente no servidor e não podem ser cancelados pelo DBA?

O que fazer nesse caso?

Alguma explicação?

- Fabricio Catae