« Return to Thread: committing / rollback question + entitymanager

Re: committing / rollback question + entitymanager

by James Sutherland :: Rate this Message:

Reply to Author | View in Thread

My guess would be that you have configured EclipseLink with a JTA DataSource, but the DataSource that you are using is not JTA.

Otherwise something very odd is occurring.   Perhaps include your persistence.xml, and enable logging on finest to see when your transaction is begun/committed, it seems your connection is somehow being left in auto-commit mode, or perhaps your database does not support transactions.


Leon Derks-2 wrote:
Hello

I have a problem with the rollback of my transaction. For some reason
the entities are saved in the db while the transaction has not committed.

These are the steps:

try{
    logger.debug(" Starting a transaction");
    entityManager.getTransaction().begin();
            //here do some entityManager.persist(entities);
           //then throw a runtime exception to fake an exception.
     logger.debug("Committing the transaction");
     entityManager.getTransaction().commit();
catch(Exception e) {
    logger.error(e);
}
finally {
     if (entityManager != null &&
entityManager.getTransaction().isActive()) {
                logger.debug("Rolling back the transaction");
                entityManager.getTransaction().rollback();
}

This is my logging info:
Starting a transaction
        exception stacktrace...........
Rolling back the transaction

As you can see the transaction is not committed but rolled back. However
there are entities in my db.

How is this possible?
Leon

 « Return to Thread: committing / rollback question + entitymanager