Existe-t-il un moyen de savoir si une transaction est dans un état "en cours" dans JDBC? Je n'ai rien trouvé dans le Connection API.Etat de la transaction dans JDBC
Merci
Existe-t-il un moyen de savoir si une transaction est dans un état "en cours" dans JDBC? Je n'ai rien trouvé dans le Connection API.Etat de la transaction dans JDBC
Merci
JDBC ne suit pas l'état de la transaction. C'est le travail de DB de suivre l'état de la transaction. Etant donné cela, vous avez toujours deux façons de suivre/connaître les états de la transaction.
Vous pouvez effectuer un appel SQL à votre base de données pour demander des détails spécifiques à la transaction. pour oracle, il sera dans v $ transaction table dans suggéré dans this post.
SELECT COUNT(*)
FROM v$transaction t, v$session s, v$mystat
WHERE t.ses_addr = s.saddr AND s.sid = m.sid AND ROWNUM = 1;
Une autre solution consiste à utiliser le code de gestionnaire de transactions dans certains cadres communs, tels que mise en veille prolongée (je crois Spring a aussi).
public interface Session {
public abstract org.hibernate.Transaction getTransaction();
}
public Transaction {
public abstract boolean wasRolledBack() throws org.hibernate.HibernateException;
public abstract boolean wasCommitted() throws org.hibernate.HibernateException;
public abstract boolean isActive() throws org.hibernate.HibernateException;
}
Merci pour la pointe de l'oracle, ça va m'aider. – cadrian
Comment définiriez-vous "état en cours"? – skaffman
Je voulais dire quelque chose comme "sale" - mettre à jour, insérer et supprimer des lignes. – cadrian