activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adrian Tarau <...@daxtechnologies.com>
Subject You cannot commit with autocommit set! problem with incubator-activemq-4.0
Date Fri, 26 May 2006 14:54:08 GMT
I got this exception when ActiveMQ is initialized with an Oracle datasource.

Caused by: java.io.IOException: You cannot commit with autocommit set!
    at 
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:42)
    at 
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:125)
    at 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.createAdapter(JDBCPersistenceAdapter.java:253)
    at 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.getAdapter(JDBCPersistenceAdapter.java:213)
    at 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.start(JDBCPersistenceAdapter.java:139)
    at 
org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerService.java:930)
    at 
org.apache.activemq.broker.BrokerService.createBroker(BrokerService.java:888)
    at 
org.apache.activemq.broker.BrokerService.getBroker(BrokerService.java:458)
    at 
org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:143)
    at 
org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:133)
    ... 62 more
Caused by: java.sql.SQLException: You cannot commit with autocommit set!
    at 
org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcCommit(BaseWrapperManagedConnection.java:434)
    at 
org.jboss.resource.adapter.jdbc.WrappedConnection.commit(WrappedConnection.java:331)
    at 
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:119)
    ... 71 more

Following the exception path I realized that the problem comes from the 
commit in TransactionContext.close().
As the comment explain nicely there shouldn't be any commit there.
Any suggestions?



public void close() throws IOException {
        if( !inTx ) {
            try {
                executeBatch();
               
                /**
                 * we are not in a transaction so should not be 
committing ??
                 * This was previously commented out - but had
                 * adverse affects on testing - so it's back!
                 *
                 */
                try{
                    executeBatch();
                } finally {
                    if (connection != null) {
                        connection.commit();
                    }
                }
               
            } catch (SQLException e) {
                JDBCPersistenceAdapter.log("Error while closing 
connection: ", e);
                throw IOExceptionSupport.create(e);
            } finally {
                try {
                    if (connection != null) {
                        connection.close();
                    }
                } catch (Throwable e) {
                    log.warn("Close failed: "+e.getMessage(), e);
                } finally {
                    connection=null;
                }
            }
        }
    }

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message