JDBC / Oracle / Transaction imbriquée
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:
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.