Re: Script Hangs on
От | Melvyn Sopacua |
---|---|
Тема | Re: Script Hangs on |
Дата | |
Msg-id | 5.0.2.1.2.20010606134350.02aa3ca0@tmp.idg.nl обсуждение исходный текст |
Ответ на | Script Hangs on (Ariunbold Gerelt-Od <gereltod@kikakuya.com>) |
Список | pgsql-admin |
At 07:21 6-6-01, you wrote: > $dbconn1 = @pg_connect ("host=$dbhost dbname=$dbname user=$dbuser >password=$dbpasswd"); > >Edit /usr/local/lib/php.ini and make sure persistent connections is >turned off. This will work, as long as the machine is up, but pgsql isn't. However, if the machine isn't up, the timeout is tremendous. Use this, or view source online at http://melvyn.idg.nl/phpsources/db_connect_plus.phps: <? //These are included from the global application configuration $cfg_vars['data_root']='/cgi-data'; $cfg_vars['appname']='your app'; $cfg_vars['appemail']='your app email sender'; $cfg_vars['pg_admin']='pgadmin@domain.com'; function db_connect_plus() { global $cfg_vars; $primary='your_ip_primary'; $secondary='your_ip_secondary'; $port='your_port'; $username='username'; $password='blabla'; $timeout=10; $now=time(); $skipcheck=10; $primcheck=$cfg_vars[data_root].'/primary_down'; $seccheck=$cfg_vars[data_root].'/secondary_down'; $appname=$cfg_vars['appname']; $appemail=$cfg_vars['appemail']; $connect='pg_connect'; // Choose your connection type (db type + persistent/not persistent) here. if(file_exists($primcheck)) { $lastmod=filemtime($primcheck); if($now - $lastmod > $skipcheck) { if($sp=fsockopen($primary, $port, &$errno, &$errstr, $timeout)) { fclose($sp); unlink($primcheck); $is_mailed=mail($cfg_vars[pg_admin], "Primary $primary back up.", date("l dS of F Y h:i:s A", $now), "From: $appname <$appemail>"); return $connect($primary, $username, $password); } else { unlink($primcheck); touch($primcheck); mail($cfg_vars[pg_admin], "Primary $primary down", "$errno\n$errstr", "From: $appname <$appemail>\nX-Priority: 1 (Highest)\nX-MSMail-Priority: High"); } } } else { if($sp=fsockopen($primary, $port, &$errno, &$errstr, $timeout)) { fclose($sp); return $connect($primary, $username, $password); } else { touch($primcheck); mail($cfg_vars[pg_admin], "Primary $primary down", "$errno\n$errstr", "From: $appname <$appemail>\nX-Priority: 1 (Highest)\nX-MSMail-Priority: High"); } } //If we get this far, the primary is down, so do the secondary. if(file_exists($seccheck)) { $lastmod=filemtime($seccheck); if($now - $lastmod > $skipcheck) { if($sp=fsockopen($secondary, $port, &$errno, &$errstr, $timeout)) { fclose($sp); unlink($seccheck); mail($cfg_vars[pg_admin], "Secondary $secondary back up.", date("l dS of F Y h:i:s A", $now), "From: $appname <$appemail>"); return $connect($secondary, $username, $password); } else { unlink($seccheck); touch($seccheck); mail($cfg_vars[pg_admin], "secondary $secondary down", "$errno\n$errstr", "From: $appname <$appemail>\nX-Priority: 1 (Highest)\nX-MSMail-Priority: High"); } } } else { if($sp=fsockopen($secondary, $port, &$errno, &$errstr, $timeout)) { fclose($sp); return $connect($secondary, $username, $password); } else { touch($seccheck); mail($cfg_vars[pg_admin], "secondary $secondary down", "$errno\n$errstr", "From: $appname <$appemail>"); } } //if we get this far, both are down! return 0; } $cs=db_connect_plus(); if(!$cs) { die("Oh oh - 2 database servers down. And you think you're redundant.."); } ?>
В списке pgsql-admin по дате отправления:
Следующее
От: "Nick Fankhauser"Дата:
Сообщение: Intentionally splitting data in a table across files.