1. ホーム
  2. postgresql

[解決済み] PostgreSQLのプロセスが "Idle in transaction "である場合、どのような意味がありますか?

2022-03-11 16:46:57

質問

が表示されている場合、どのような意味があるのでしょうか? PostgreSQL プロセスは、トランザクション内でアイドル状態になっていますか?

私が見ているサーバーで、"ps ax | grep postgres" の出力に、以下のような9つのPostgreSQLプロセスが表示されます。

postgres: user db 127.0.0.1(55658) idle in transaction

これは、一部のプロセスがハングして、トランザクションがコミットされるのを待っているということでしょうか? 関連するドキュメントへのポインタがあれば、ありがたいです。

解決方法は?

その PostgreSQLのマニュアル は、トランザクションがオープン(BEGIN 内)でアイドル状態であることを意味することを示しています。 モニターに接続しているユーザーが考えたり、入力したりしている可能性が高いです。 私のシステムにも、そういう人がたくさんいます。

ただし、Slonyをレプリケーションに使っている場合は Slony-I FAQ が示唆しています。 idle in transaction は、ネットワーク接続が突然切断されたことを意味する可能性があります。 詳しくは、そのFAQの議論をご覧ください。