it-swarm.com.de

Postgresql Transaktions-ID nicht gefunden

Immer wenn ich eine Abfrage in postgresql ausführe, ist dies die Fehlermeldung, die ich erhalte

Transaktions-ID in der Sitzung nicht gefunden.

Hat jemand eine Idee, wie man das lösen kann? Ich habe vor kurzem einen neuen Benutzer erstellt, aber ich konnte keine Dokumentation finden, die dies sogar als gültigen Fehler anzeigt.

Weitere Details: Es ist mir gelungen, den Fehler durch erneute Verbindung mit Administratorrechten zu beheben.

Ich habe PG Admin V4 mit Postgres V9.6 verwendet, und dies war die einzige Meldung, die in jeder von mir ausgeführten Abfrage angezeigt wurde, auch wenn es sich um eine grundlegende Abfrage wie 'SELECT NOW ()' handelte.

Gleichzeitig war dies die Fehlermeldung, die vom Clientgerät (einem iOS-Gerät mit einem AWS Lambda/NodeJS-Backend) empfangen wurde:

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

Ich gehe davon aus, dass Sie eine Lösung gefunden haben, aber für alle anderen Benutzer, die diesen Beitrag gefunden haben, hatte ich das gleiche Problem und ich habe gerade PG Admin 4 geschlossen und neu gestartet und es wurde geklärt. 

19
gignosko

Für alle, die dieses Problem haben, ist alles, was Sie tun müssen:

1) Reconnect to the database

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

Bitte.

16

Das Trennen und Wiederherstellen der Verbindung zur Datenbank hat dieses Problem für mich gelöst. PGAdmin 4 musste nicht vollständig beendet/geöffnet werden.

1
Tyler MacMillan

Dies ist keine PostgreSQL-Fehlermeldung. Es muss von etwas anderem in dem Stack stammen, den Sie verwenden - einem Client-Treiber, ORM usw.

Bitte stellen Sie eine detailliertere Frage mit vollständigen Informationen zum verwendeten Stack.

1
Craig Ringer

Daher kenne ich die genauen Details meiner Lösung nicht, aber ich habe dieses Problem unter den folgenden Umständen gefunden:

  • Datenbankbenutzer wurde erstellt. 
  • Dem Benutzer wurde eine Rolle zugewiesen.
  • Eine Transaktion wurde verwendet

Ich bin immer noch nicht ganz sicher, ob ich die Lösung des Wurzelproblems gefunden habe, aber wenn andere das gleiche Szenario haben, kann dies die Problembehandlung weiter erleichtern. Wenn eine dieser drei nicht verwendet wird, ist mir das Problem nie begegnet.

0
Molezz

Hat jemand eine Erklärung für dieses Problem gefunden? Außerdem erhalte ich eine "Transaktions-ID, die in der Sitzung nicht gefunden wurde". Es ist für eine lange laufende (mehrere Tage) Abfrage. Ich habe es mit einer Stichprobe von 10% meiner Daten ausgeführt und hatte keine Probleme. Jetzt muss ich den Vorgang für den gesamten Datensatz wiederholen. Ich stelle erneut eine Verbindung zur Datenbank her und die Abfrage wird als noch aktiv angezeigt. Eine neue Leerlaufabfrage wird wie folgt angezeigt:

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