Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2011, 17h43   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 61
Points : 10
Points : 10
Par défaut Commit sans délock

Bonjour à tous et merci à la communauté pour son implication.

Le code est fais de la sorte :
Code :
1
2
3
4
5
Traitements ... 
COMMIT;
SELECT FOR UPDATE nowait;
Traitements ... 
COMMIT;
le souci est que, il arrive qu'un autre process fasse un lock juste après le premier "COMMIT;" du coup le "select for update nowait;" échoue et la suite des traitements n'a pas lieu !

Est-il est possible de faire le COMMIT, mais sans délocker la ressource ?

1000 merci
cyclone_yas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 17h57   #2
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
D'après les informations fournies il suffit de ne pas faire le premier commit.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 17h59   #3
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 61
Points : 10
Points : 10
Oui, seulement ce n'est pas possible !
il s'agit de briques indépendantes et complémentaires et dont l'appel n'est pas toujours dans le même ordre.
cyclone_yas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 18h31   #4
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Les briques n'ont pas à commit leur traitement, c'est au code qui assemble les briques de faire le travail de validation de la transaction, car lui seul a la vision de la transaction dans son ensemble.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/05/2011, 18h51   #5
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 61
Points : 10
Points : 10
Entièrement d'accord. Sauf que c'est historique !
c'est un projet qui a plus de 15 ans d'age, équipe d'une dizaine de personne.
personne ne maitrise vraiment tout, et l'étude d'impact (pour virer le premier commit) sera très couteuse, voir impossible à réaliser.

le plus important pour moi c'est de savoir s'il y a une façon pour parer le problème, ou le contourner ? si vous avez des suggestions je suis preneur.

Merci beaucoup
cyclone_yas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 20h13   #6
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Citation:
Est-il est possible de faire le COMMIT, mais sans délocker la ressource ?
Non.

Citation:
Envoyé par cyclone_yas Voir le message
...

le plus important pour moi c'est de savoir s'il y a une façon pour parer le problème, ou le contourner ? si vous avez des suggestions je suis preneur.
Des solutions existent toujours mais, ...
1° Traitement en base mono-utilisateur
2° Modifiez le code pour qu'il ne fasse pas le commit dans certaines conditions
3° Supprimez le nowait
4° Modifiez le code pour qu'il ré-essaie de verrouiller plus tard les enregistrements
...
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/05/2011, 11h19   #7
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 61
Points : 10
Points : 10
Merci bien mnitu

Est ce que tu peux expliciter ta solution de contournement ?
cyclone_yas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 11h42   #8
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Citation:
Envoyé par cyclone_yas Voir le message
Merci bien mnitu

Est ce que tu peux expliciter ta solution de contournement ?
Laquelle ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h27.


 
 
 
 
Partenaires

Hébergement Web