O que significa quando um processo PostgreSQL está “ocioso na transação”?

StackOverflow https://stackoverflow.com/questions/51019

  •  09-06-2019
  •  | 
  •  

Pergunta

O que significa quando um PostgreSQL o processo está "ocioso na transação"?

Em um servidor que estou vendo, a saída de "ps ax | grep postgres" vejo 9 processos PostgreSQL parecidos com os seguintes:

postgres: user db 127.0.0.1(55658) idle in transaction

Isso significa que alguns dos processos estão travados, aguardando a confirmação de uma transação?Quaisquer indicações para documentação relevante serão apreciadas.

Foi útil?

Solução

O Manual do PostgreSQL indica que isso significa que a transação está aberta (dentro de BEGIN) e inativa.Provavelmente é um usuário conectado através do monitor que está pensando ou digitando.Eu também tenho muitos deles no meu sistema.

Se você estiver usando o Slony para replicação, no entanto, o Perguntas frequentes sobre Slony-I sugere idle in transaction pode significar que a conexão de rede foi encerrada abruptamente.Confira a discussão nesse FAQ para mais detalhes.

Outras dicas

Conforme mencionado aqui: Ré:ERRO #4243:Ocioso na transação provavelmente é melhor verificar sua tabela pg_locks para ver o que está sendo bloqueado e isso pode lhe dar uma pista melhor de onde está o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top