Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 30/10/2017 13:14:00
- mortimer.pw
- Membre
Compter les connexions
Bonjour,
Je travaille avec une base 9.6.5 sous CentOS 7.
J'ai fait une petite fonction, qui prend en paramètre le nom d'une base de données, fait un SELECT sur PG_STAT_ACTIVITY pour voir les connexions et leur état, puis alimente une table avec les infos collectées.
Description de la Fonction :
CREATE OR REPLACE FUNCTION dba.inf_conn(cdb character varying)
RETURNS void AS
$BODY$
DECLARE
RConn RECORD;
BEGIN
DELETE FROM DBA.conn_snap WHERE EXTRACT(DAYS FROM CURRENT_TIMESTAMP-now)::INTEGER>2;
FOR RConn IN SELECT CURRENT_TIMESTAMP AS now,conn.usename,conn.state,conn.nb_conn
FROM (SELECT usename,state,COUNT(*) AS nb_conn FROM pg_stat_activity WHERE pid <> PG_BACKEND_PID() AND datname=cdb GROUP BY usename,state) conn LOOP
INSERT INTO DBA.conn_snap(now,utilisateur,etat_conn,nb_conn) VALUES(RConn.now,RConn.usename,RConn.state,RConn.nb_conn);
END LOOP;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Description de la Table :
CREATE TABLE dba.conn_snap
(
id serial NOT NULL,
now timestamp with time zone NOT NULL,
utilisateur character varying(30) NOT NULL,
etat_conn text,
nb_conn integer NOT NULL DEFAULT 0,
CONSTRAINT pk_conn_snap PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
Le problème est que le champ STATE de la requête sur PG_STAT_ACTIVITY semble ne rien renvoyer comme valeur.
Alors que si j'exécute la requête manuellement, j'ai bien souvent 'idle'.
Pouvez-vous m'aider ?
Hors ligne
#2 30/10/2017 15:08:37
- dverite
- Membre
Re : Compter les connexions
Quand on est superutilisateur on voit le contenu de "state" pour tout le monde, alors que quand on ne l'est pas, on ne voit une valeur non-vide que pour les sessions de son propre compte.
A mon avis manuellement vous n'êtes pas connecté avec le même compte que celui qui appelle cette fonction et qui voit "state" à NULL pour les sessions des autres.
Dernière modification par dverite (30/10/2017 15:09:41)
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
#3 30/10/2017 15:17:37
- mortimer.pw
- Membre
Re : Compter les connexions
Bonjour Daniel,
Effectivement c'est bien ça.
Dommage !
Merci.
Hors ligne
Pages : 1