Hi, I keep persistent db connections and would like to explicitly disconnect db when killing httpd. I have custom module where I initialize db connection, prepare sth's ( will use them in Mason components ) once for per children and several methods which have deal with my database. Here I have DESTROY method which supposed to disconnect all connections. sub DESTROY { my $self= shift; $self->disconnect; warn "Db connection finished $self ...\n"; } $self->disconnect is a sub which finish all sth's and disconnects connection with db. But I have nothing in error log when I kill httpd and I didn't understand what's happens because if I comment call $self->disconnect I see messages from DESTROY method foreach children: Db connection finished My::DB=HASH(0x80cd240) ... So, is't worth to try explicitly disconnect db when httpd gets killed and how to do this using standard method like DESTROY without catching signals and etc. Another question: If I keep persistent connection httpd <-> db and did some changes in db, say dump/reload table. How to refresh existing dbh ? Regards, Oleg I wrote script to emulate above. I expected warn message from DESTROY method when script finished. 1. DESTROY is just warn 18:38[zeus]:~/app/discovery/test/bench/dbi>tt.pl Db connection finished My::DB=HASH(0x80cd240) ... 2. DESTROY calls $self->disconnect and then warn 18:40[zeus]:~/app/discovery/test/bench/dbi>tt.pl Nothing is there. test script: #!/usr/local/bin/perl use strict; use My::DBtest; # use this connect string $ENV{DBI_DSN} = "dbi:Pg(RaiseError=>1,AutoCommit=>0):dbname=discovery"; #DBI->trace(2); my ($dbh, $count ); $dbh = My::DB->new(1); # $dbh->disconnect; ------------------ Simplified version of module My/DBtest.pm package My::DB; $VERSION = 0.1; use strict; use DBI; my %query = ( sth0 => 'select count(*) from messages', ); my $self = {}; sub new { my $proto = shift; my $class = ref($proto) || $proto; $self->{dbh} = DBI->connect() or die ("Connections fails; $!\n"); prepare_sth($self); bless ( $self, $class); $self; } sub prepare_sth { my $self = shift; foreach my $sth (keys %query) { $self->{$sth} = $self->{dbh}->prepare ( $query{$sth}); } } sub disconnect { my $self = shift; $self->sth_finish; $self->{dbh}->disconnect; warn "disconnected ..\n"; } sub sth_finish { my $self = shift; foreach my $sth (keys %query) { $self->{$sth}->finish; } } sub DESTROY { my $self= shift; $self->disconnect; warn "Db connection finished $self ...\n"; } 1; _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: [EMAIL PROTECTED], http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83