From: <ja...@he...> - 2006-07-20 13:34:57
|
Hi all, I think org.hibernate.engine.transaction.Isolater is not handling connections properly: The method JdbcDelegate is currently implemented as follows: public static class JdbcDelegate implements Delegate { ... public void delegateWork(IsolatedWork work) throws HibernateException { Connection connection = null; try { connection = session.getBatcher().openConnection(); ... } ... } finally { if ( wasAutoCommit ) { try { connection.setAutoCommit( true ); } catch( Throwable ignore ) { log.trace( "was unable to reset connection back to auto-commit" ); } session.getBatcher().closeConnection( connection ); } } } } This means that the connection will only be closed if wasAutoCommit==true but I think it should be closed in any circumstance: public static class JdbcDelegate implements Delegate { ... public void delegateWork(IsolatedWork work) throws HibernateException { Connection connection = null; try { connection = session.getBatcher().openConnection(); ... } ... } finally { if ( wasAutoCommit ) { try { connection.setAutoCommit( true ); } catch( Throwable ignore ) { log.trace( "was unable to reset connection back to auto-commit" ); } } session.getBatcher().closeConnection( connection ); } } } What do you think ? -- "Feel free" – 10 GB Mailbox, 100 FreeSMS/Monat ... Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail |