web-dev-qa-db-ja.com

PostgresqlトランザクションIDが見つかりません

Postgresqlでクエリを実行するたびに、これは受信したエラーメッセージです

セッションでトランザクションIDが見つかりません。

誰もこれを解決する方法を知っていますか?最近新しいユーザーを作成しましたが、これを有効なエラーとして表示するドキュメントを見つけることができませんでした。

追加の詳細:管理者の資格情報で再接続することで、エラーを解決できました。

Postgres V9.6でPG Admin V4を使用していましたが、 'SELECT NOW()'のような基本的なクエリであっても、実行したクエリに表示されるメッセージはそれだけでした。

同時に、これはクライアントデバイス(AWS Lambda/NodeJSバックエンドを備えたiOSデバイス)が受信するエラーメッセージでした:

'message' : {
  'name' : 'error',
  'length' : 114,
  'severity' : 'fatal',
  'code' : '28000',
  'file' : 'miscinit.c',
  'line' : '587',
  'routine' : 'InitializeSessionUserId'
}
12
Molezz

私はあなたが解決策を見つけたと思いますが、この投稿を見つけた他の人には同じ問題があり、PG Admin 4を閉じて再起動しましたが、解決しました。

19
gignosko

この問題を抱えている人にとって、あなたがしなければならないことは次のとおりです。

_1) Reconnect to the database_

2) Open a new Query Tab. (Run your query here)

どういたしまして。

16

データベースの切断と再接続により、この問題は解決しました。 PGAdmin 4を完全に終了/開く必要はありませんでした。

1
Tyler MacMillan

これはPostgreSQLエラーメッセージではありません。クライアントドライバー、ORMなど、使用しているスタック内の別のものから取得する必要があります。

使用しているスタックに関する詳細情報を含む詳細な質問を投稿してください。

1
Craig Ringer

したがって、ソリューションの詳細はわかりませんが、次の状況でこの問題が見つかりました。

  • データベースユーザーが作成されました。
  • ユーザーにロールが割り当てられました。
  • トランザクションが使用された

根本的な問題の解決策を発見したかどうかはまだ完全にはわかりませんが、他の人が同じシナリオを持っている場合、さらにトラブルシューティングするのに役立つかもしれません。これら3つのいずれかが使用されていない場合、問題は発生しません。

0
Molezz

誰かがこの問題の説明を見つけましたか? 「セッションにトランザクションIDが見つかりません。」も表示されます。長時間実行(数日)クエリ用です。データの10%のサンプルで実行しましたが、問題はありませんでしたが、完全なデータセットに対してこのプロセスを繰り返す必要があります。データベースに再接続すると、クエリはまだアクティブとして表示されます。新しいアイドルクエリは次のように表示されます。

SELECT rel.oid, rel.relname AS name,
    (SELECT count(*) FROM pg_trigger WHERE tgrelid=rel.oid AND tgisinternal = FALSE) AS triggercount,
    (SELECT count(*) FROM pg_trigger WHERE tgrelid=rel.oid AND tgisinternal = FALSE AND tgenabled = 'O') AS has_enable_triggers,
    (CASE WHEN rel.relkind = 'p' THEN true ELSE false END) AS is_partitioned
FROM pg_class rel
    WHERE rel.relkind IN ('r','s','t','p') AND rel.relnamespace = 2200::oid
    AND NOT rel.relispartition
        ORDER BY rel.relname;
0
Jason Hawkins