From: Oleg Bartunov <oleg(at)sai(dot)msu(dot)su>
To: modperl(at)apache(dot)org
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject:
Date: 1998-08-03 13:24:57
Message-ID: Pine.GSO.3.96.SK.980803171125.529A-100000@ra
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, 2 Aug 1998, Patrick Michael Kane wrote:

> Date: Sun, 2 Aug 1998 11:38:39 -0700
> From: Patrick Michael Kane <modus(at)pr(dot)es(dot)to>
> Reply-To: modperl(at)apache(dot)org
> To: modperl(at)apache(dot)org
> Subject: Re: How to rid off persistent database connection ?
>
> On Sun, Aug 02, 1998 at 08:32:22PM +0200, Edmund Mergl wrote:
> > Oleg Bartunov wrote:
> > >
> >
> > >
> > > Currently we have about 150 000 queries (selects only) to postgres in day and
> > > our server ( DUAL PPRO, 256 Mb RAM, SCSI UW) seems works ok.
> > > Will see what happens when I switch to mod_perl enhanced apache with
> > > Apache::DBI authorization.
> > >
> > > But what I'm really worry about is how to gently interrupt alive database
> > > connection, for example to do some administrative job (backup, update ...)
> > >
> > > Regards,
> > >
> > > Oleg
> >
> [snip]
> >
> > For backups there should be no need to interrupt the database
> > connection,
> > at least for read-only access.
> >
> > For updates I would keep the database connections and just redirect
> > any access to a page which tells the user, that the database is
> > currently
> > not accessible.
>
> Edmund's suggestion has the additional benefit of working even if you
> shutdown the database and bring it back up, assuming your DBD has a ping()
> method. Apache::DBI will notice that the database handle is no longer valid
> and bring a new one online, without any intervention on your part.

Just tried to shutdown database (PostgreSQL) by killing postmaster
and keeping established connections (backends) alive. This works fine -
I still can access database using these connections
(through mod_perl cgi, of course, only)
But new connection couldn't established because of absent of postmaster
and I can't restart it because it can't bind port:

mira:~$ runpostgres
FATAL: StreamServerPort: bind() failed: errno=98
Is another postmaster already running on that port?
If not, wait a few seconds and retry.
/usr/local/pgsql/bin/postmaster: cannot create INET stream port

There are no postmaster I already killed him.
I don't know if this postgreSQL problem, though.
After killing all backends I restarted postmaster and noticed in error_log
messages from Apache::DBI
Database handle destroyed without explicit disconnect ....
and this I understand. Is it possible accurately close all connections
using Apache::DBI and then do all admin. jobs (redirect requests to
another page, shutdown database etc..)

Regards,

Oleg

> --
> Patrick Michael Kane
> <modus(at)pr(dot)es(dot)to>
>

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg(at)sai(dot)msu(dot)su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

Browse pgsql-hackers by date

  From Date Subject
Next Message fcheese 1998-08-03 13:59:42 (no subject)
Previous Message J Christopher Bower 1998-08-03 13:04:30 Re: [HACKERS] 6.1 pg_dump core dump