|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Bonjour,
je me souviens que le sujet avait été effleuré mais je n'arrive plus à remettre la main dessus... Voila, je n'arrive plus à comprendre pourquoi un select sur un dblink démarre automatiquement et implicitement une transaction : Code :
![]() A vot' bon coeur m'sieurs-dames ! Leo. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
je pense que tu trouveras la réponse dans ces pages : http://download.oracle.com/docs/cd/B...s.htm#g1013136
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
ton lien est sur le fonctionnement de INSERT/DELETE/UPDATE sur un DB LINK . Dans ce cas, c'est normal qu'il y ait une transaction !
![]() moi, ce que je fais, c'est un simple SELECT mais qui démarre tout de même une transaction... |
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
![]() c'est le coordinateur qui doit devoir ouvrir une transaction pour gérer les commits même si c'est qu'un SELECT... j'essaye de trouver une explication plus probante
|
|
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
je crois bien avoir trouvé : http://download.oracle.com/docs/cd/B...htm#sthref4650
Citation:
|
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
|
|
|
00
|
|
|
#7 | ||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#8 | |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Extrait de la documentation :
Citation:
__________________
Consultant et formateur Oracle |
|
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Citation:
surtout que la transaction est ouverte sur la base source; sur la cible, un select ne provoque pas de transcation. |
|
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
l'ouverture d'une transaction ne permet t'il pas de "tagger" le SCN, cf le lien donné plus haut concernant la gestion du SCN dans l'usage des DBLinks
|
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
dans ce cas, il faudrait le SCN de la base cible et donc on aurait la transcation sur la cible..
or la transaction est créée sur la source... |
|
|
00
|
|
|
#12 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
je pense qu'il met à jour le catalogue local pour stocker le SCN distant
Citation:
|
|
|
|
00
|
|
|
#13 | |||
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
une trace ? non, mais j'ai mieux : j'ai dumpé LE seul block d'undo que génère la transaction !
Code :
Citation:
|
|||
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
en plus, l'explication marche pas :
t0 : sur la source : select * from matable@cible t1 : sur la cible : insert into matable + commit t2 : sur la source : select * from matable@cible. Les modifications sont prises en compte. |
|
|
00
|
|
|
#15 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
la doc dit que c'est probable, pas systématique
Sinon, le dump est sensé être utile parce que j'y comprends rien moi |
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
d'accord, le dump est pas super lisible....
mais on remarque quand même le scn, évidemment mais j'ai oublié de les noter sur les bases cible et source lors de mon test !
|
|
|
00
|
|
|
#17 | |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Sujet évoqué là.
Et voici ce qui dit Tom Kyte: Citation:
|
|
|
|
00
|
|
|
#18 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
|
|
|
00
|
|
|
#19 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
j'ai toujours pas pigé le pourquoi du comment !
|
|
|
00
|
|
|
#20 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
par défaut, Oracle se dit que si tu passes par le DBLink c'est forcément pour modifier une donnée et donc il ouvre une transaction pour commiter ou rollbacker le statement
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com