Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1921 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Trigger PostgreSQL

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Trigger PostgreSQL

n°2260879
DarkHorse
Posté le 22-06-2015 à 17:21:54  profilanswer
 

Bonjour à tous  :hello:  
 
Je réalise actuellement un projet mettant en place un système multi agents (JADE, Java) et une base de données PostgreSQL.  
Cependant il y a des choses que je n'arrive pas à réaliser:
 
Dans ma base de données j'ai une table appelée "devices" qui contient une liste de capteurs (une centaine), une colonne correspond à la valeur (de type integer) qui a été relevé par le capteur. Cette valeur est mise à jour par une source externe.
Je souhaitais, lorsque une de ces valeurs change d'état (les valeurs évoluent en permanence), réaliser un trigger qui permet d'envoyer une notification de l'événement à un de mes agents. Idéalement, que PostgreSQL m'envoie la ligne complète du capteur (dont la valeur à changée) vers mon agent.
 
Pour l'instant j'ai tenté de faire quelque chose avec ceci:
 

Code :
  1. CREATE  FUNCTION trigger_notify() RETURNS trigger AS
  2. $$ BEGIN
  3. perform pg_notify('nom_evenement', row_to_json(NEW)::text);
  4. return new;
  5. END
  6. $$ language plpgsql;


Ce que je trouve assez pénible (à mes yeux) c'est qu'il est impossible de faire des tests élémentaires à ce niveau: Je ne sais pas si mon trigger fonctionne correctement, ou si le renvoi d'informations se fait, ou si mon agent ne comprend pas ce qu'il reçoit.  
 
Actuellement j'évalue les mises à jours des valeurs par polling, c'est à dire que mes agents réalisent des requêtes toutes les 500ms et ce n'est clairement pas la solution à retenir (c'est pour dépanner en attendant). J'ai fait un essai pour tester la durée de vie du système avec le polling, ça tient 4789 requêtes vers ma base de données et puis je perds la connexion avec... Cependant il reste toujours accessible via PgAdmin III ou via une console avec les commandes psql.
 

Code :
  1. org.postgresql.util.PSQLException: La tentative de connexion a échoué.


Ce qui ne m'avance pas beaucoup car les recherches google liées à ce problème sont des personnes qui n'ont réussi aucune connexion avec leur BDD, or moi j'arrive à m'y connecter correctement jusqu'à un certain moment.
 
Mon environnement de travail:
Windows 8.1 Pro
Eclipse Luna
PostgreSQL 9.4
 
Avez vous des pistes à suivre?


Message édité par DarkHorse le 22-06-2015 à 17:27:52

---------------
Corvette C5 Coupé owner
mood
Publicité
Posté le 22-06-2015 à 17:21:54  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Trigger PostgreSQL

 

Sujets relatifs
[SQL/PostgreSQL] RENAME COLUM[POSTGRESQL] Table non défini
Intégrer un (scrip) trigger dans un code (vb 6.0)postgresql conversion de type
PostgreSQL : changer le répertoire de postgresql.confSuppression de colonnes PostgreSQL
[PostgreSQL] trigger qui ne passe pas les param à la fonctionJDBC PostGreSQL, insertions de PL/PGSQL trigger et fonction marche pas
[postgresql] trigger sur l'heure systeme ? edit : utilisation crontab[postgresql] trigger, j'ai du mal
Plus de sujets relatifs à : Trigger PostgreSQL


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR