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 :

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){}
}
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 ?

Merci.