본문 바로가기
MySql

MySQL com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException : autocommit = true 일 때 롤백을 호출 할 수 없음

by 베이스 공부 2020. 11. 2.
반응형

내 응용 프로그램에서 mysql과 함께 Jboss5.0을 사용하고 있습니다. 동시 작업이 많을 것이고 DB에는 상당히 많은 레코드가 포함됩니다. 이 오류는 자주 발생합니다 .. 때때로.

 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)

누구든지 도울 수 있습니까?

미리 감사드립니다

 

해결 방법

 

자동 커밋이 켜져있을 때 롤백을 호출하려고하거나 트랜잭션 (및 롤백 기능)을 지원하지 않는 데이터베이스에서 MyISAM 유형 테이블을 사용하고 있습니다.

stacktrace에 의해 판단하면 데이터베이스에 대한 트랜잭션이 실패하고 SQLException을 생성하고 트랜잭션을 롤백하려는 시도에서이 예외가 발생합니다. 예외에 더 많은 것이 있지 않는 한 (예 : 귀하의 코드에서 예외가 발생하는 위치에 대한 표시) MyISAM 테이블 때문이라고 추측 할 위험이 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/3911968

 

 

반응형

댓글