Bonjour,
j'ai besoin d'un certain nombre de précisions, et j'ai du mal à trouver des réponses même en recherchant sur le net.
1. Oracle gère les transactions imbriquées normalement si je ne m'abuse. Mais y a t il une limitation via le driver jdbc ?
2. Les transactions imbriquées sont elles exclusivement à réaliser dans des procédures stockées ? ou est il possible d'en gérer via jdbc dans le source principal ?
3. Je ne vois pas de createTransac ou StartTransac, c'est donc le SetAutoCommit(false) qui "démarre" une nouvelle transaction ?
4. Est il possible de faire ceci :
La fermeture de la connection2 enterrine t elle la transaction ? ou bien tout n'est pas commité tant que la 1ere transac de "connection" ne l'est pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Connection connection = null; try{ connection = ...; connection.setAutoCommit(false); //traitement des différentes instructions composant la transaction try { connection2 = ...; connection2.setAutoCommit(false); .. connection2.commit(); connection2.setAutoCommit(true); } catch (Exception ex){ connection2.rollback(); } finally { connection2.close(); } if(jeVeuxValider){ connection.commit();// c'est ici que l'on valide la transaction connection.setAutoCommit(true); }else{ connection.rollback(); } }catch(SQLException sqle){ try{connection.rollback();}catch(Exception e){} }catch(Exception e){ try{connection.rollback();}catch(Exception e){} }finally{ try{connection.close();}catch(Exception e){} }
Merci.
Partager