-1

Is it possible that I have an error ORA-08177 on a select statement ?

    --- Cause: java.sql.SQLException: ORA-08177: can't serialize access for this transaction
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:201) 
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139) 
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:578) 
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:552) 
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) 
at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:298) 
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209) at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:249) 
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:296)
Lima
  • 1,203
  • 3
  • 22
  • 51
user817057
  • 127
  • 1
  • 11

1 Answers1

0

According to the docs, ORA-08177 can be caused only by serializable transactions. It means that a row which the serializable transaction is trying to modify was modified by another transaction after the serializable transaction has begun. Similar situation can happen with the read committed isolation level, but in this case the database automatically and silently restarts the entire SQL statement, and no error occurs.

So my guess is that your transaction is serializable after all. Default isolation level can be set, I believe, in the connection, and perhaps also in connection properties. Are you sure you've checked every possible place? You should be able to easily verify this by calling getTransactionIsolation() on the connection.

Saurabh
  • 2,384
  • 6
  • 37
  • 52