55P03: lock_not_available
PostgreSQLWas bedeutet das?
Die angeforderte Sperre konnte nicht sofort erhalten werden. Meist passiert das, wenn eine Sperre mit NOWAIT angefordert wird, während jemand anderes sie hält, oder wenn lock_timeout abläuft.
Ursache
Die Zeile/Tabelle ist gesperrt, während SELECT ... FOR UPDATE NOWAIT oder LOCK TABLE ... NOWAIT verwendet wird, oder lock_timeout läuft ab. Meistens hält eine lange Transaktion die Sperre.
Lösung
Finde die blockierende Session: Verknüpfe pg_locks und pg_stat_activity (Warte-/Blockierbeziehung). Beende die lange Transaktion oder terminiere sie bei Bedarf mit pg_terminate_backend(pid). Warte statt NOWAIT mit einem sinnvollen lock_timeout und ergänze eine Wiederholungslogik. Verkürze Transaktionen, um die Haltedauer von Sperren zu reduzieren.