2010-10-12 3 views
1

Im, использующий Jboss5.0 с mysql в моем приложении. и будет много одновременных действий, и БД содержит значительно много записей. эта ошибка часто возникает .. время от времени.com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: не удается вызвать откат при autocommit = true

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

http://forums.sun.com/thread.jspa?threadID=5370911 –

+0

спасибо. если я устанавливаю auto commit false для целого, повлияет ли он на любые не транзакционные обновления. – Tamizh

ответ

5

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

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

+0

im использует innodb и поддерживает транзакции. im, имеющих как транзакционные, так и не транзакционные запросы. – Tamizh

+1

@Tamizh, вы вызываете rollback() в своем коде, и если да, попробовали ли вы отключить автоматическую фиксацию до этого? – Cyntech

+0

есть всякий раз, когда я использую транзакции i первый комплект автокомплект ложный. , и теперь я нашел его как WARN в файле журнала jboss вместо ERROR. так что на самом деле это ПРЕДУПРЕЖДЕНИЕ, когда соединения теряются или мигают в течение длительного времени, я думаю – Tamizh

Смежные вопросы