Re: Q: Executing functions at connect/disconnect?

Поиск
Список
Период
Сортировка
От Mattias Kregert
Тема Re: Q: Executing functions at connect/disconnect?
Дата
Msg-id 010c01c3424f$70da2520$09000a0a@kregert.se
обсуждение исходный текст
Ответ на Q: Executing functions at connect/disconnect?  ("Mattias Kregert" <mattias@kregert.se>)
Ответы Re: Q: Executing functions at connect/disconnect?  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-general
Is it possible to use pg_backend_pid() or pg_stat_activity in some way?

I tried to put a rule on pg_stat_activity:
  create rule cleanup as on delete to pg_stat_activity do ... <cleanup code>

...but it does not work... i disconnected and the backend was removed from pg_stat_activity, but the rule did not
execute...does anybody know why?? 

/Mattias


----- Original Message -----
From: "Mattias Kregert" <mattias@kregert.se>
To: "Darko Prenosil" <darko.prenosil@finteh.hr>
Cc: <pgsql-general@postgresql.org>
Sent: Friday, July 04, 2003 6:08 PM
Subject: Re: [GENERAL] Q: Executing functions at connect/disconnect?


> Just as i thought...
> I have only one solution then; to have a cleanup function which is executed every now and then...
>
> Cleanup function:
> 1. Look in the Session table to find out which sessions are registered.
> 2. Determine if some of these sessions are "dead".
> 3. Update all those items/objects/rows held by the dead session(s) as "unused".
> 4. Unregister the session.
>
> I see two problems with this:
> A. How do I know if a session is dead or still connected? I need to get that information from the postmaster or my
backendin some way, but I don't know how to do that. 
> B. If this function is exeuted by a cron job or something, then some rows will be marked as "in  use" and unavailable
toother clients for some time... I would have to run this frequently to be sure that no objects are left behind for too
long.Besides, it is an ugly solution. :/ 
>
> /Mattias
>
> >From: "Darko Prenosil" <darko.prenosil@finteh.hr>
> > I had same question before about two months, but I'm afraid, there is no
> > simple way. I tried to add some code to the "backend", but have broken all my
> > teeth trying to get it work. Such code goes deeply into PostgreSQL internals,
> > and I'm afraid only few people can do it(Tom,Bruce,Jan...).
> > Hoverer if You succeed ,please let me know because I'm interested in this
> > feature too.
> >
> > Regards !
>
> > On Thursday 03 July 2003 17:28, Mattias Kregert wrote:
> > > Is there a way to automagically execute a function at connect/disconnect?
> > > I was thinking about the possibility to have some kind of automatic cleanup
> > > when the client disconnects.
> > >
> > > I would like to:
> > > - Register a session id at connect time. (INSERT into sessions(sessId,
> > > user, host, ...) ...) - Use the session id to mark some objects as "in use"
> > > (UPDATE tbl SET usedBy=<sessionid> WHERE...). - Automatically update all
> > > rows with this session-id as "unused" when the client disconnects from the
> > > backend.
> > >
> > > I can not trust the client to exit cleanly all the time, so the cleanup
> > > function must be executed by the backend when the connection is lost. The
> > > client could exit nicely or crash or have a power failure or whatever. I
> > > don't expect bad things to happen very often, but if/when they do i want to
> > > be sure that no rows are "in use".
> > >
> > > Any ideas?
> > >
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
>       subscribe-nomail command to majordomo@postgresql.org so that your
>       message can get through to the mailing list cleanly
>
>

В списке pgsql-general по дате отправления:

Предыдущее
От: Jonathan Bartlett
Дата:
Сообщение: Re: any body using Solaris8 with postgresql 7.3.3
Следующее
От:
Дата:
Сообщение: ANNOUNCING: Rekall V2.0.0 for Linux/UNIX, Windows, and the Sharpe family of Linux PDAs