Vous n'êtes pas identifié(e).
Bonjour
PostgreSQL tourne bien souvent avec un utilisateur qui a des droits restreints, donc lancer un script shell peut être problématique. je vois plusieurs solutions pour arriver à un résultat satisfaisant
1) Utilisation de LISTEN/NOTIFY votre Trigger va déclencher un NOTIFY, et un service (codé dans le langage de votre choix) va surveiller à intervalle régulier si des changements sont intervenus, et lancer le cas échéant le script
2) En PLPython il doit être possible d'utiliser le module subprocess pour lancer une commande, vu qu'il est UNTRUSTED
3) Utiliser l'extension PostgreSQL AMQP https://github.com/omniti-labs/pg_amqp qui necéssite un serveur AMQP (RabbitMQ) avec lequel vous enverrez un message en mode point à point ou diffusé. en face vous aurez un script relié à RabbitMQ qui va lancer un traitement dès réception d'un message, l'avantage de cette extension est que lors du publish le message n'est pas envoyé de suite, mais seulement au commit, si un rollback est effectué alors le message n'est pas envoyé alors même que l'on a appellé le publish().
Bonjour
Si des sessions sont en IDLE, c'est que le traitement est fini, ais que la connexion à la base n'est pas fermé, il faut donc regarder quelle application les a lancés (PostgreSQL ne fait rien tout seul)
sinon utiliser pg_terminate_backend() avec le numéro de PID du process lancé celui-ci est disponible dans pg_stat_activity dans la colonne procpid ou pid (depuis la 9.2)
Bonjour
Le seul produit que je connaisse en COBOL et qui tourne avec PostgreSQL est COBOL-IT Compiler Suite [1] qui dispose d'une solution pour Précompiler le code avec PostgreSQL
Christophe.
Merci Thomas de ce petit retour, qui vient de m'être utile
Je suis passer de 30MB/s à 70MB/s
Sachant que les VMWare tools ne sont pas installés sur la Debian Squeeze
Bonsoir
Attention sous Windows un service, via un utilisateur système n'a pas de HOME, c'est con mais c'est comme ça, donc la manipulation du pgpass.conf ne marche pas.
il faut forcer soit les variables d'environnement sur l'utilisateur de la session, ou utiliser la notion de service que j'ai décrite ici
Cordialement,
Bonjour
Ce message indique qu'au démarrage de PostgreSQL, le serveur n'a pas trouvé les certificats SSL, ce n'est donc pas un erreur en tant que telle
Cordialement,
Bonsoir
Je suppose que vous êtes sous un windows 32Bit, ce qui fait que lorsqu'un process consomme plus de 2Go de mémoire il est automatiquement tué, comme vous indiquer que le process consomme 1,9 GO c'est ce qui doit se passer.
Cordialement,
Bonjour
J'ai ouvert d'autres catégories de forum, concernant l'utilisation des langages procéduraux
Cordialement,
Christophe Chauvet.
Bonjour
Utilisez vous l'installeur graphique ? ou bien vous le lancez en ligne de commande ?
Bonjour
Avez vous désactivé le contrôle des comptes windows ?
Bonjour
Je conseille également Psycopg2, y'a des couches d'abstraction comme SqlAlchemy mais plutot multi-bases de données
Bonjour
je confirme le mot de passe sert uniquement à la session windows, donc n'a pas le choix que d'en spécifier un. par contre dans ton cas l'utilisateur postgres existe déjà sur ton système et que le mot de passe que tu donne n'est pas le bon.
Bonsoir
J'ai écris une doc d'installation sous Windows [1], vous devriez vous en sortir avec, également un article en cas de reinstallation [2]
[1] http://blog.kryskool.org/index.php/post … Windows-XP
[2] http://blog.kryskool.org/index.php/post … Windows-XP
Bonsoir
Quel version exacte de PostgreSQL Utilisez Vous.
Bonsoir
Quelle version de PostgreSQL utilisez vous ?
Lut
En fait, je ne crois pas que l'installeur soit fait aussi pour cela. C'est une bonne question à poser à Dave et Magnus.
Il est possible d'avoir plusieurs version de PostgreSQL sur un même serveur windows, le port d'écoute se définit dans l'installeur, donc pas de soucis de ce coté (a l'époque j'avais une 8.0, 8.1, 8.2 qui tournais en même temps sous un XP). par contre il faut bien avoir mémoriser le mot de passe de l'utilisateur postgres qui a été créer à la première install car on le reutilise pour les suivantes.
Ensuite le gros soucis est le nombre de connexion simultanée sous windows. par défaut sous windows il n'en accèpte pas plus de 128 (chaque utilisateur logué compte pour 1), chaque connexion à la base utilise 1 connexion, avec des programmes type php & co on arrive vite avec de multiples connexions en parallèles. sachant que par défaut pour chaque connexion windows consomme 3Mo d'office + xxMo pour le traitement. pour changer cette valeur il faut aller trafiquer la base des registres, sachant que je l'ai testé pour vous, et que la machine au bout de 200 connexions est devenue instable (surement un problème de gestion mémoire). ceux problème n'est pas spécifique a PostgreSQL mais a beaucoup de base de données.
Donc mes recommandations sous windows, c'est bon pour le développement,mais pour la prod c'est bien pour commencer, mais au premier soucis faut basculer sous Linux ou Unix (d'ailleurs tous mes clients windows sont au final passé sous Debian ou Solaris, la raison est que les bases était du 24/24 et que les maj windows était necessaire donc reboot necessaire, donc pas trop compatible).
Lut
Bon j'ai résolu avec la création des users avant d'activer le md5, ça reste étrange mais bon j'ai une olution.
le mode trust permet aux utilisateurs de se connecter sans mot de passe, donc lorsque tu met md5 c'est normal qu'a la prochaine connexion il te demande un mot de passe
par défaut l'utilisateur postgres n'a pas de mot de passe donc impossible de s'y connecter si md5, par contre si tu as trust ou ident sameuser y'a pas de soucis, sachant que trust est fortement déconseillé et ne sert qu'a vérifier que l'on arrive bien a se connecter.
Sous les Unix/Linux tu devrait laisser la ligne commençant par local à ident sameuser et les lignes commençant par host avec md5
ainsi pour fixer un mot de passe à l'utilisateur postgres il faut passer en root puis ensuite en utilsateur postgres
$ sudo su -
# su - postgres
$ psql
# ensuite une fois connecté en sous psql executer la commande ci dessous
ALTER USER postgres ENCRYPTED PASSWORD 'toto';
Ainsi il sera possible de se connecter à la base via pgadmin3.
Bonsoir
Et si vous desactivez le pooling, est ce que le comportement est identique ?
Sinon votre version de npgsql est ancienne, essayer de mettre a jour vers a version 1.0.1
Cordialement,
Christophe Chauvet.
Bonjour
Le mieux est d'analysé les log avec pgFouine, d'y reexécuter les requêtes qui prendrait du temps et de vérifier les explain plan.
Cordialement,
Christophe Chauvet.
Bonsoir
Il reste l'utilisateur système postgres, il faut le supprimer avant votre réinstallation à moins que vous vous souveniez du mot de passe que vous lui avez mis.
Cordialement,
Christophe Chauvet.
Bonjour
Sous Windows le jeu de caractère par défaut est le CP1252 (appellé aussi WIN1252)
J'avais écrit un article sur l'utilisation du mode console windows avec PostgreSQL sur mon site
essayé aussi avant la méthode COPY d'envoyé un
SET client_encoding TO 'WIN1252';
Cordialement,
Christophe Chauvet.
Bonjour
Je vous conseillerais dans ce cas http://www.sqlmaestro.com/products/post … generator/
L'ayant testé je le trouve pas mal.
Cordialement,
Christophe Chauvet.
Bonjour
j'apporte un petit éclaircissement au fichier pg_hba.conf
Je laisse par défaut ident sameuser pour la ligne contenant local
# "local" is for Unix domain socket connections only
local all all ident sameuser
çà permet de se connecter via su - postgres à partir du root.
ensuite pour la ligne host je remplace ident sameuser par md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
ce qui permet de, à partir de script de pouvoir s'indentifier avec le mot de passe de l'utilisateur qui se trouve dans la base.
il convient de créer un autre utilisateur dans la base de données ainsi que qu'une base de données associée et de les utilisés dans vos scripts python.
Bonjour
lors du lancement de l'installation avez vous cochez la case qui permet d'enregistrer tout ce qui se passe dans un fichier de log, si oui pouvez vous nous donnez les 50 dernières lignes du fichier lorsque ça plante ?
Cordialement,
Christophe Chauvet.