Ошибка фиксации JDBC, вызов фиксации при autocommit = true. Многопоточный сеанс гибернации каким-то образом меняет автокоммит?

У меня есть основной поток, который порождает поток №2, который использует тот же сеанс спящего режима в основном потоке. Тема №2 просто выполняет «выбор 1» каждые несколько минут, чтобы поддерживать соединение с базой данных из-за длительного процесса из основного потока. Как только основной поток завершается с обработкой, он вызывает фиксацию, но я получаю сообщение об ошибке:

Caused by: org.hibernate.TransactionException: JDBC commit failed
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:161)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)
    ... 5 more
Caused by: java.sql.SQLException: Can't call commit when autocommit=true
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:930)
    at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1602)
    at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:170)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:146)
    ... 6 more

Внутри основного потока он создает внутренние транзакции, которые успешно фиксируются, это просто внешняя транзакция, когда она фиксируется, выдает эту ошибку . Я не понимаю, что могло изменить логическое значение autocommit. До того, как я представил второй поток для поддержания соединения, этой ошибки никогда не возникало.

9
задан Donal Fellows 10 March 2011 в 16:30
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: