Avatar billede babz Nybegynder
01. april 2003 - 22:28 Der er 8 kommentarer og
1 løsning

persistent db connection

Jeg har nu sutte temmelig meget rundt i både Postgres API og PHP manual for at finde ud af hvordan jeg bruger pg_pconnect().

Jeg laver et php-drevet site med Postgres som bagende, og vil nødig ud i at skulle oprette en connection til min database i hvert script, da alle siderne skal tilgå samme database.

Problemet er at jeg efter oprettelse af en pg_pconnect ikke kan få lov til at genbruge min forbindelse fra et andet script.

Jeg troede det var det der var meningen med persistent connections.

Eller er det mig der er galt på den.


jeg vil gerne:

<?php fil 1

$conn_string = "host=localhost port=5432 dbname=yes_sir user=no_sir password=gotcha";

$dbcon= pg_pconnect($conn_string);
?>

<?php fil 2
$query="gimmie ur money";
$res=pg_query($dbcon,$query);
?>

Er det galt.???

B
Avatar billede jakoba Nybegynder
01. april 2003 - 22:35 #1
Jeg tvivler på du kan bruge persistent connections på den måde. hvis du kunne ville det også blive grumme dyrt i server-ressourcer, når den connection skal holdes åben i forventning om at der måske aktiveres et næste script.
Avatar billede babz Nybegynder
01. april 2003 - 22:59 #2
Hvad er da en persistent connection.???

Her er et lille uddrag af manualen:
-----------------------------------------
Persistent connections are SQL links that do not close when the execution of your script ends. When a persistent connection is requested, PHP checks if there's already an identical persistent connection (that remained open from earlier) - and if it exists, it uses it. If it does not exist, it creates the link. An 'identical' connection is a connection that was opened to the same host, with the same username and the same password (where applicable).
------------------------------------------

Hvad kan man bruge en persistent connection til???
Avatar billede tipsen Nybegynder
01. april 2003 - 23:48 #3
Der er vist nogen krav til, hvordan php er installeret og konfigureret i forb. med webserveren!
Avatar billede babz Nybegynder
01. april 2003 - 23:55 #4
Ja... kravene er opfyldt i min php.ini


pgsql.allow_persistent sat til ON (som er default)
pgsql.max_persistent er også sat til -1 hvilket indikerer "infinite".

Er der andre krav?
Avatar billede tipsen Nybegynder
01. april 2003 - 23:58 #5
Jeg mener at have hørt noget med at php skal være installeret som modul under Apache - kan det passe / giver det mening ?
Avatar billede babz Nybegynder
02. april 2003 - 00:03 #6
Jep det er rigtigt....

Hvis php er installeret som CGI Wrapper Dør det alle jobs der spawnes, når de ikke længere er i brug, og dermed også en P-connection.

Men jeg bruger ren PHP, og ikke CGI-wrapper.
Så det er heller ikke her fejlen ligger.
Avatar billede andy Nybegynder
02. april 2003 - 09:27 #7
Persistent connections under apache er ikke det bedste. Der bliver åbnet en connection for hver process. Ofte kører apache med adskillelige processes for at sikre en optimal svartid.
Jeg laver selv ca 300.000 alm. connections til MySQL via PHP på en apache webserver. Det fungerer glimrende :)
Jeg kender ikke meget til postgres med og hvormeget overhead en connection giver, men jeg vil råde dig til at droppe persistent connections.
Avatar billede babz Nybegynder
02. april 2003 - 10:58 #8
Godt så...
Jeg giver op. Og må erkende at der ikke er nogen der har de store erfaringer med P-connections.

Jeg takker og lukker.

Babz.
Avatar billede babz Nybegynder
02. april 2003 - 11:09 #9
LUK
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester