|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : février 2005 Messages : 177 ![]() |
Bonjour à tous,
j'ai 3 traitements JAVA qui agissent sur 2 tables: 1)- sélection d'un ensemble de lignes de la table 1 et update du Flag de ces lignes. 2)- création d'enregistrement dans la table 2. 3)- récupération des row_id des lignes créées et mis à jour dans la table 1 des lignes correspondantes. Je souhaite que mon traitement se fasse de bout en bout et que s'il y a problème que je puisse rollbacker toute la transaction( sachant que je dois commiter dans l'étape 2 pour que je suisse récupérer les row_id). voici le code,sachant que j'ai anonymisé le code au maximum mais l'idée est là; Code :
-Structurellement es-ce bon ! -Es-ce que le traitement s’exécute comme une seule unité transactionnelle? si par exemple il y a un lock sur la table1, y aurait-il un problème au niveau de l'étape 3. Merci par avance. |
||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 501 ![]() |
Je ne vois pas l'instruction START TRANSACTION au début du traitement.
Ensuite, pour les commit et rollback, c'est aussi des instruction sql |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : février 2005 Messages : 177 ![]() |
merci oneagaindoguys de ta réponse,
en réalité, le traitement qui est appelé utilise un framework fait maison pour la gestion des transactions et c'est lui qui est responsable de l’initialisation des transactions, de les committer et de les roolbacker si erreur. et concretement le traitement en question est appelé au sein d'une classe qui implemente une interface spacifique et c'est à ce niveau là que ce fait la gestion de la transaction (initialisation, commit/roolback) et donc le rollback est en fait situé à un niveau plus haut , la méthode "méthodeDAppel" se contente de renvoyé l'exception. |
|
|
00
|
|
|
#4 | |||||
![]() ![]() |
Citation:
Code sql :
Code x :
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() "Votre génitrice tute des pédoncules au pandémonium" (le conjurateur, 1973) |
|||||
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : février 2005 Messages : 177 ![]() |
merci tchize_, c'est ok pour ce point.
question sur les accès concurrent ? si il y a un lock au niveau de la table1 avant de passer à l'étape 3; -quelle est le temps maximum que peut rester une requête en "wait" ? |
|
|
00
|
|
|
#6 |
![]() ![]() |
ca dépend de la configuraiton de la DB. Si c'est du oracle, je pense qu'il n'y a pas de timeout puisque oracle détecte automatiquement les deadlocks.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() "Votre génitrice tute des pédoncules au pandémonium" (le conjurateur, 1973) |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : février 2005 Messages : 177 ![]() |
Merci tchize_.
j'ai eu réponse à mes interrogation, je clôture la discussion. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com