Tempo aproximado para leitura: 00:01:43 min
Dúvida
Como identificar locks no banco de dados no Logix para banco Informix?
Ambiente
Framework - Framework (Linha Logix) - Administração Logix - Todas as versões
Solução
Para identificar locks no banco de dados do Logix em Informix basta executar as consultas abaixo diretamente no banco de dados, utilizando qualquer ferramenta SQL - Structure Query Language suportada pelo banco.
Consulta para identificar os locks:
select
syslocks.owner || ',' || bloqueador.usuario || ',' || bloqueador.programa bloqueador,
syslocks.waiter || ',' || bloqueado.usuario || ',' || bloqueado.programa bloqueado,
tabname tabela
from sysmaster:syslocks syslocks
left outer join log_dados_sessao_logix bloqueador on bloqueador.sid = syslocks.owner
left outer join log_dados_sessao_logix bloqueado on bloqueado.sid = syslocks.waiter
where syslocks.waiter is not null;
Importante
As consultas apenas apresentarão os locks que estão bloqueando outros usuários.
Caso queira consultar todos os locks, mesmo aqueles que não estejam bloqueando outros, basta retirar a cláusula WHERE dos comandos.
Caso o bloqueador ou bloqueado não seja um programa do Logix, serão apresentados apenas a coluna SID e as vírgulas ao invés dos nomes do usuário e programa do Logix.
Nesses casos utilize o comando abaixo diretamente no servidor do banco Informix, para identificar quem é o bloqueador:
onstat -g ses <valor_da_coluna_bloqueador>
Para descobrir quem são os usuários bloqueados, também no servidor do banco Informix, execute o seguinte comando:
onstat -g ses <valor_da_coluna_bloqueado>
0 Comentários