Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/08/2003, 16h14   #1
Membre à l'essai
 
Développeur Web
Inscription : mai 2003
Messages : 29
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2003
Messages : 29
Points : 22
Points : 22
Envoyer un message via Skype™ à BuLma
Par défaut [PHP & PostGreSQL] Connexion persistante & Res Id

Bonjour,

Comment sont réellement gérées les connexion à PostGreSQL via PHP/apache ??

En fait, mon problème c'est que quelquesoit la session, je récupère toujours le même Resource Id de connexion ...
Tout irait bien si toutes les requêtes avaient bien un Resource Id différent...
Or il se trouve que sur des sessions différentes, certains Resource Id de requêtes sont réattribués et cela fait planter un parcours de resultset si je tape dans un même Resource Id existant dans 2 sessions différentes avec le même Id de connexion ....

J'ai essayé de relancer apache mais sans succès... je me retrouve toujours avec le même Res Id de connexion...
Il change quand je fais tourner une ancienne version de mon site sur un virtual host différent ...

des idées ??

Si vous voulez plus de détails sur les objets et sessions, cf le thread que j'ai ouvert aussi sur le forum PHP : http://www.developpez.net/forums/viewtopic.php?t=111356
BuLma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2003, 22h17   #2
Membre habitué
 
Inscription : mai 2003
Messages : 145
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 145
Points : 146
Points : 146
bah justement c'est le role d'une connexion persistante non d'avoir toujours le même identifiant de connexion
wello00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2003, 13h21   #3
Membre à l'essai
 
Développeur Web
Inscription : mai 2003
Messages : 29
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2003
Messages : 29
Points : 22
Points : 22
Envoyer un message via Skype™ à BuLma
oui mais même si je ne fais pas de connection persistante (connect simple) ben pareil, j'ai tjrs le même Id
mais le vrai pb c'est les requêtes qui se retrouvent avec les mêmes Id aussi !!
BuLma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2003, 17h07   #4
Membre habitué
 
Inscription : mai 2003
Messages : 145
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 145
Points : 146
Points : 146
bah c normal si tu ne fermes pas la connexion après chaques requête ou transaction!
wello00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2003, 18h14   #5
Membre à l'essai
 
Développeur Web
Inscription : mai 2003
Messages : 29
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2003
Messages : 29
Points : 22
Points : 22
Envoyer un message via Skype™ à BuLma
Mais elle n'est pas sensé se fermer à la fin du script ?
Et même en fermant, je retrouve les mêmes Id...
BuLma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2003, 08h48   #6
Membre habitué
 
Inscription : mai 2003
Messages : 145
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 145
Points : 146
Points : 146
Citation:
Envoyé par BuLma
Mais elle n'est pas sensé se fermer à la fin du script ?
Et même en fermant, je retrouve les mêmes Id...
non pas du tout faut appeler la fonction nécessaire! mais sinon cela me parait bizarre, Stessy ne va pas tarder à apparaitre, le grand chef
wello00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2003, 09h43   #7
Rédacteur
 
Avatar de Stessy
 
Homme Stessy Delcroix
Senior Software Engineer JEE
Inscription : avril 2002
Messages : 744
Détails du profil
Informations personnelles :
Nom : Homme Stessy Delcroix
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Senior Software Engineer JEE
Secteur : Finance

Informations forums :
Inscription : avril 2002
Messages : 744
Points : 1 092
Points : 1 092
Tout à fait Wello00, tu es obligé de fermer une connexion.
Bulma imagines un peu que tu ne fermes pas tes connexions, tu vas vite être saturée en connexions et le serveur va finir par t'envoyer une erreur du type

Citation:
too many clients
Je travailles avec java pour générer les interfaces et interagir avec PostgreSQL, ce que je fais dans ce cas c'est que pour chaque écran je crée un objet Connexion. Tant que je reste avec cet écran ma connexion reste ouverte mais une fois que je change d'écran, je ferme obligatoirement ma connexion et j'en recrée une à l'écran suivant. Je fais cela car tu gagnes en vitesse car ce qui te prend le plus de temps c'est justement la connexion à la base.

En php tu appeles juste le bout de code suivant

pour fermer ta connexion.

Citation:
Envoyé par Wello00
Stessy ne va pas tarder à apparaitre, le grand chef
Je ne suis pas le grand chef, ni le grand gourou de PostgreSQL, juste un passionné de cet SGBD assez peu connu du grand public.
__________________
Langages : Java, SQL
Outils : Eclipse, Intellij
SGBD : Oracle, PostgreSQL
Mes Articles
Stessy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2003, 10h10   #8
Membre à l'essai
 
Développeur Web
Inscription : mai 2003
Messages : 29
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2003
Messages : 29
Points : 22
Points : 22
Envoyer un message via Skype™ à BuLma
Bon alors, j'ai à peu près tout essayer ...

Finalement, là je fais comme tu dis, à savoir en début de script:
  • - je créé un nouvel objet ki gère la connexion
    - j'ouvre la connexion avec pg_connect
ensuite je fais plein de requetes
enfin, je ferme la connexion avec pg_close

mais ça n'empeche que d'un navigateur à l'autre, dans des sessions différentes, je me retrouve avec des Id de connexion et des Id de Requetes Identiques !! ce qui fait planter si je ne récupère pas toutes les données du resultat de la requete immédiatement apres l'exécution.
BuLma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2003, 10h16   #9
Membre à l'essai
 
Développeur Web
Inscription : mai 2003
Messages : 29
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2003
Messages : 29
Points : 22
Points : 22
Envoyer un message via Skype™ à BuLma
Par ailleurs, je viens de revérifier la doc PHP et :
Citation:
pg_close() retourne FALSE si l'index de connexion n'est pas valable, et TRUE sinon. pg_close() ferme la connexion au serveur PostgreSQL associé à connection.

Note : Il n'est généralement pas nécessaire de fermer une connexion non persistante, car elles sont automatiquement fermées à la fin d'un script.

pg_close() ne ferme pas les connexions persistantes ouvertes avec pg_pconnect().
BuLma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2003, 11h35   #10
Membre à l'essai
 
Développeur Web
Inscription : mai 2003
Messages : 29
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2003
Messages : 29
Points : 22
Points : 22
Envoyer un message via Skype™ à BuLma
bon ayé, j'ai trouvé le pb qui faisait planter chez moi !!

cété un close qui vidait tous les résultats de requêtes dans ma classe d'affichage, il était exécuté avant la fin du script !!

enfin, ça n'empêche que je me demande tjrs pkoi : on retrouve tjrs les mêmes Id de connexion et de requêtes partout

Merci pour tout
BuLma est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h00.


 
 
 
 
Partenaires

Hébergement Web