2 distinct connections

We're working on a project using PHP and PostgreSQL, mainly trying to work=

in an OOP fashion. The project has quite a good amount of code, and a DB
Object called DB_Bib that has all the query methods. I also have a generic=

DB object (DB_Main) which has code to establesh the connection, and from
which my DB_bib Inerits the DB connection.

The thing is that I made a new class called DB_Debug which also inherits
from DB_Main, and is there to have debugging data inserted into a table in=

the database.

I noticed that when the two objects are started (they both call the
connection method using the same connection string) php doesn't
initiate to distinct connections, but 1 connection within commands from
both objects get passed to the DB server.

The problem is that query commands from the DB_Debug object and from the
DB_Bib object get mixed up in the same connection, making it deficult to
know when to make a commit.

Is there a way to fix this without having to change the connection string?

--
21:50:04 up 2 days, 9:07, 0 users, load average: 0.92, 0.37, 0.18
---------------------------------------------------------
Lic. Mart=EDn Marqu=E9s | SELECT 'mmarques' ||
Centro de Telem=E1tica | ' [at] ' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
Martin Marques [ Sa, 27 Mai 2006 14:37 ] [ ID #1332000 ]

Re: 2 distinct connections

Hi Martin

Did you try passing the constant PGSQL_CONNECT_FORCE_NEW to the
Debug-connect?

regards
Conni

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
Cornelia Boenigk [ Sa, 27 Mai 2006 15:12 ] [ ID #1332001 ]

Re: 2 distinct connections

On Sat, 27 May 2006, Cornelia Boenigk wrote:

> Hi Martin
>
> Did you try passing the constant PGSQL_CONNECT_FORCE_NEW to the
> Debug-connect?

Excelente. I forgot to say that I'm working with PEAR::DB, and just found=

this in DB/pgsql.php:

if (isset($dsn['new_link'])
&& ($dsn['new_link'] =3D=3D 'true' || $dsn['new_link'] =3D=3D=
=3D true))
{
if (version_compare(phpversion(), '4.3.0', '>=3D')) {
$params[] =3D PGSQL_CONNECT_FORCE_NEW;
}
}

I always forget to "use the source Luke!" :-)

thanks!

--
21:50:04 up 2 days, 9:07, 0 users, load average: 0.92, 0.37, 0.18
---------------------------------------------------------
Lic. Mart=EDn Marqu=E9s | SELECT 'mmarques' ||
Centro de Telem=E1tica | ' [at] ' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
Martin Marques [ Sa, 27 Mai 2006 16:39 ] [ ID #1332002 ]

Re: 2 distinct connections

On May 27 09:37, Martin Marques wrote:
> We're working on a project using PHP and PostgreSQL, mainly trying to work
> in an OOP fashion. The project has quite a good amount of code, and a DB
> Object called DB_Bib that has all the query methods. I also have a generic
> DB object (DB_Main) which has code to establesh the connection, and from
> which my DB_bib Inerits the DB connection.
>
> The thing is that I made a new class called DB_Debug which also inherits
> from DB_Main, and is there to have debugging data inserted into a table in
> the database.
>
> I noticed that when the two objects are started (they both call the
> connection method using the same connection string) php doesn't
> initiate to distinct connections, but 1 connection within commands from
> both objects get passed to the DB server.
>
> The problem is that query commands from the DB_Debug object and from the
> DB_Bib object get mixed up in the same connection, making it deficult to
> know when to make a commit.

As Cornelia Boenig suggested, you can force pg_connect() to establish a new
connection on every call. Also if you don't want to exhaust max_connections
limit, you can serialize queries using semaphores (or mutex).


Regards.

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq
Volkan YAZICI [ Sa, 27 Mai 2006 16:40 ] [ ID #1332003 ]
Datenbanken » gmane.comp.db.postgresql.php » 2 distinct connections

Vorheriges Thema: php|works / db|works call for papers ends June 5th
Nächstes Thema: libpq.so.4 won't load for postgres 8.1.3, php 5.0.4-5 and apache 2.0.52 on Centos 4.2