Como derrubar usuário que ficou preso no banco de dados?
Este procedimento tem o intuito de mostrar em como derrubar um usuário Protheus que fica preso dentro do banco de dados e que não conseguimos derrubar via DBMONITOR do Protheus.
Para isso precisamos identificar qual é SPID do usuário preso.
1º Abrir o DBMONITOR do Protheus e localizar a coluna “DB Thread”, pois nela fica o código do SPID e o código de bloqueio.
O SPID é o primeiro código e o outro é o correspondente ao código de bloqueio. Algumas vezes mesmo clicando no botão “Encerrar” do DbMonitor, não conseguimos derrubar a conexão do usuário.
E quando não conseguimos derrubar, vamos diretamente ao banco de dados e fazer o seguinte SELECT apenas para certificar quem está preso, pois poderá haver outros presos também.
Exemplo:
1 |
SELECT * FROM master..sysprocesses where dbid=db_id('NOME DO BANCO') and blocked > 0 |
O SPID do usuário ficará armazenado no campo blocked.
Para matar o processo, digite KILL “CODIGO SPID” sem as aspas
No exemplo da imagem acima faça:
1 2 3 |
KILL 221 --SPID encontrado no dbmonitor --ou KILL 294 --SPID encontrado no select |