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 :
CREATE FUNCTION trigger_notify() RETURNS trigger AS
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 :
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
Marsh Posté le 22-06-2015 à 17:21:54
Bonjour à tous
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:
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.
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