Ron wrote:
> > > However, one or more of our big (and schema-identical) prod databases 
> > > (which are each on a different server)
> > > it is finicky and tends to just "sit" at a random one of the CREATE OR 
> > > REPLACE FUNCTION statements.
> > > 
> > > The "list all blocking queries" I run doesn't show that anything is 
> > > blocking it (though it blocks
> > > everything else), and neither top(1) nor iotop(1) show any activity.
> > > 
> > > If it matters, this script is fed to the databases via the JDBC driver, 
> > > and it works fine when I run it via psql.
> > > (I'd gladly run the scripts manually, but these are child databases, and 
> > > a parent db must be updated
> > > at the same time by a canned application.)
> > > 
> > > Where in Postgres can I look to see why it's just sitting there?
> >
> > select * from pg_stat_activity;
> > might shed some light?
>  
> That (plus pg_locks)  is the heart of the "list all blocking queries" 
> statement I copied
> from https://wiki.postgresql.org/wiki/Lock_Monitoring.

If there is nothing with "granted" set to FALSE in "pg_locks", you are not 
blocked by
a database lock.

What is the "state" of the hanging database session in "pg_stat_activity"?

If it is "idle" or "idle in transaction", then the lock must be in your Java 
process.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com


Reply via email to