Я получаю следующее исключение, когда пытаюсь зафиксировать базу данных
java.sql.SQLException: You cannot commit with autocommit set!
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcComm
it(BaseWrapperManagedConnection.java:545)
at org.jboss.resource.adapter.jdbc.WrappedConnection.commit(WrappedConne
ction.java:334)
at net.sf.hibernate.id.TableGenerator.generate(TableGenerator.java:126)
at net.sf.hibernate.id.TableHiLoGenerator.generate(TableHiLoGenerator.ja
va:59)
вот мой JBOSS (jboss-4.0.5.GA) mssql-ds.xml: -
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>TESTDS</jndi-name>
<connection-url>jdbc:sqlserver://localhost:1433;DatabaseName=TESTDB</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>password</password>
<check-valid-connection-sql>SELECT 1 FROM sysobjects</check-valid-connection-sql>
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
и вот где моя операция коммита (с транзакцией): -
public synchronized void commitTransaction() throws TransactionException {
Transaction tx = (Transaction) localTransaction.get();
Session session = (Session) localSession.get();
try {
tx.commit();
}
catch (HibernateException e) {
log.error("Error closing the persistence when commiting.", e);
rollbackTransaction();
throw new TransactionException(e);
}
finally {
try {
session.close();
}
catch (HibernateException e) {
log.fatal("Session could not be closed !!!", e);
}
localSession.set(null);
localTransaction.set(null);
}
log.info("Commiting transaction with thread : " + Thread.currentThread());
}
ОБНОВЛЕНИЕ: Файл конфигурации Hibernate (hibernate.cfg.xml)
<!-- SQLSERVER configuration -->
<property name="dialect">net.sf.hibernate.dialect.SQLServerDialect</property>
<property name="connection.datasource">java:/TESTDS</property>
<property name="connection.pool_size">100</property>
<property name="statement_cache.size">200</property>
<property name="transaction.factory_class">net.sf.hibernate.transaction.JDBCTransactionFactory</property>
<property name="show_sql">false</property>
<property name="use_outer_join">true</property>
<!-- Hibernate mapping files configuration -->
..............
<!-- Hibernate mapping files configuration -->
Я попытался выполнить поиск по всей сети, но не смог найти решение этой проблемы.
Спасибо.