com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: не может вызвать откат, когда autocommit = true - PullRequest
1 голос
/ 12 октября 2010

Я использую Jboss5.0 с MySQL в моем приложении. и будет много параллельных действий, и БД содержит значительно больше записей. эта ошибка появляется часто .. время от времени.

 com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException:
 Can't call rollback when
 autocommit=true    at
 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
    at
 com.mysql.jdbc.Connection.rollback(Connection.java:5192)
    at
 org.jboss.resource.adapter.jdbc.local.LocalManagedConnection.rollback(LocalManagedConnection.java:97)
    at
 org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.tidyup(TxConnectionManager.java:783)
    at
 org.jboss.resource.connectionmanager.BaseConnectionManager2.returnManagedConnection(BaseConnectionManager2.java:453)
    at
 org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.connectionClosed(TxConnectionManager.java:734)
    at
 org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.closeHandle(BaseWrapperManagedConnection.java:362)
    at
 org.jboss.resource.adapter.jdbc.WrappedConnection.close(WrappedConnection.java:155)

Может кто-нибудь помочь?

Заранее спасибо

1 Ответ

5 голосов
/ 12 октября 2010

Либо вы пытаетесь вызвать откат, когда включена автоматическая фиксация, либо в вашей базе данных используются таблицы типов MyISAM, которые не поддерживают транзакции (и возможность отката).

Судя по трассировке стека, транзакция в базу данных завершается неудачно, и при попытке создать SQLException и откатить транзакцию возникает это исключение.Если нет исключений (например, указание на то, где в вашем коде запускается исключение), я бы рискнул предположить, что это связано с таблицами MyISAM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...