[PostgreSQL] débloquer une table d'une concurrence obsolete
débloquer une table d'une concurrence obsolete [PostgreSQL] - SQL/NoSQL - Programmation
MarshPosté le 30-01-2007 à 14:34:14
Bonjour,
J'ai repris un projet qui tape dans une base Postgres 8.1.3
J'ai visiblement un soucis. J'execute une transaction qui bloque sur la ligne suivante:
update seq_objet set bac_seq = bac_seq + 1 where date_production = maDate;
avec maDate initialisé avec la date du jour
la commande marche en début de journée... mais au bout d'un moment, l'enregistrement dans la table seq_objet avec date_production = date du jour est bloqué (vérouillé probablement suite à un plantage au cours d'une transaction)... du coup ma transaction stop sur cette commande et mon programme se fige
si je lance pgAdmin III, si je supprime un ancien enregistrement dans la table ca marche... mais si je veux supprimer l'enregistrement avec date_production = date du jour, ca se bloque... je suis obligé de relancer la base pour tout dévérouiller...
Est-t'il possible de paramétrer un timeout ou de paramétrer la base pour la rendre moins restrictive sur ces aspets de concurrence. Ou peut on "killer" les acces\sessions obsolete
Merci Olivier
Message édité par molarisapa le 30-01-2007 à 14:44:30
Marsh Posté le 30-01-2007 à 14:34:14
Bonjour,
J'ai repris un projet qui tape dans une base Postgres 8.1.3
J'ai visiblement un soucis. J'execute une transaction qui bloque sur la ligne suivante:
update seq_objet
set bac_seq = bac_seq + 1
where date_production = maDate;
avec maDate initialisé avec la date du jour
la commande marche en début de journée... mais au bout d'un moment, l'enregistrement dans la table seq_objet avec date_production = date du jour est bloqué (vérouillé probablement suite à un plantage au cours d'une transaction)... du coup ma transaction stop sur cette commande et mon programme se fige
si je lance pgAdmin III, si je supprime un ancien enregistrement dans la table ca marche... mais si je veux supprimer l'enregistrement avec date_production = date du jour, ca se bloque... je suis obligé de relancer la base pour tout dévérouiller...
Est-t'il possible de paramétrer un timeout ou de paramétrer la base pour la rendre moins restrictive sur ces aspets de concurrence. Ou peut on "killer" les acces\sessions obsolete
Merci
Olivier
Message édité par molarisapa le 30-01-2007 à 14:44:30