2009-10-05 15 views

Respuesta

4

JDBC no realiza un seguimiento del estado de la transacción. Es el trabajo de DB seguir el estado de la transacción.

Dado que, todavía tiene dos formas de rastrear/conocer los estados de la transacción.

Puede hacer una llamada sql a su base de datos para solicitar detalles específicos de la transacción. para Oracle, estará en la tabla v $ transaction sugerida en 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; 

Otra solución es utilizar código de gestor de transacciones en algunos marcos comunes, tales como la hibernación (creo primavera también lo tiene).

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; 
} 
+0

Gracias por la sugerencia de Oracle, me ayudará. – cadrian

Cuestiones relacionadas