Hi, We are getting this exception on trying to insert to a table:
insert into materials (id, a, b, c, d, e, f) values (null, ?, ?, ?, ?, ?, 'a') [50200-168]; nested exception is org.h2.jdbc.JdbcSQLException: Timeout trying to lock table ; SQL statement: insert into materials (id, a, b, c, d, e, f) values (null, ?, ?, ?, ?, ?, 'a') [50200-168] at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124) at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322) at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:379) at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:645) at com.x.MaterialRepository.save(MaterialRepository.java:281) at com.x.MaterialRepository.findOrCreateFrom(MaterialRepository.java:317) at com.x.MaterialDatabaseUpdater.folderFor(MaterialDatabaseUpdater.java:140) at com.x.MaterialDatabaseUpdater.initializeMaterialWithLatestRevision(MaterialDatabaseUpdater.java:102) at com.x.MaterialDatabaseUpdater.access$000(MaterialDatabaseUpdater.java:30) at com.x.MaterialDatabaseUpdater$1.doInTransaction(MaterialDatabaseUpdater.java:73) at com.x.transaction.TransactionCallback.doWithExceptionHandling(TransactionCallback.java:8) at com.x.transaction.TransactionTemplate$3.doInTransaction(TransactionTemplate.java:37) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128) at com.x.transaction.TransactionTemplate.executeWithExceptionHandling(TransactionTemplate.java:33) at com.x.MaterialDatabaseUpdater.updateMaterial(MaterialDatabaseUpdater.java:71) at com.x.MaterialUpdateListener.onMessage(MaterialUpdateListener.java:27) at com.x.MaterialUpdateListener.onMessage(MaterialUpdateListener.java:12) at com.x.messaging.activemq.JMSMessageListenerAdapter.runImpl(JMSMessageListenerAdapter.java:49) at com.x.activemq.JMSMessageListenerAdapter.run(JMSMessageListenerAdapter.java:34) at java.lang.Thread.run(Thread.java:662) Caused by: org.h2.jdbc.JdbcSQLException: Timeout trying to lock table ; SQL statement: insert into materials (id, a, b, c, d, e, f) values (null, ?, ?, ?, ?, ?, 'a') [50200-168] at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) at org.h2.message.DbException.get(DbException.java:158) at org.h2.command.Command.filterConcurrentUpdate(Command.java:276) at org.h2.command.Command.executeUpdate(Command.java:232) at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:156) at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:142) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105) at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:94) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2176) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2656) at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:563) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:551) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:547) at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:648) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:374) ... 17 more Caused by: org.h2.jdbc.JdbcSQLException: Concurrent update in table "UNIQUE_a_INDEX_A": another transaction has updated or deleted the same row [90131-168] at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) at org.h2.message.DbException.get(DbException.java:169) at org.h2.message.DbException.get(DbException.java:146) at org.h2.table.RegularTable.addRow(RegularTable.java:146) at org.h2.command.dml.Insert.insertRows(Insert.java:124) at org.h2.command.dml.Insert.update(Insert.java:84) at org.h2.command.CommandContainer.update(CommandContainer.java:75) at org.h2.command.Command.executeUpdate(Command.java:230) ... 40 more We are using: h2-1.3.168.jar with Hibernate (3.3.2.GA) & IBatis (2.3.4.726). With following settings: jdbc:h2:" + path + "/cruise;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MVCC=TRUE;CACHE_SIZE=131072;DATABASE_EVENT_LISTENER='" + ClassName + "'"; We found this post related to the error: http://stackoverflow.com/questions/14060632/how-to-do-testing-with-hibernate-h2-using-testng Do you have an idea when this can occur? Regards, Srinivas -- View this message in context: http://h2-database.66688.n3.nabble.com/MVCC-and-SELECT-FOR-UPDATE-tp2140527p4025850.html Sent from the H2 Database mailing list archive at Nabble.com. -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to h2-database+unsubscr...@googlegroups.com. To post to this group, send email to h2-database@googlegroups.com. Visit this group at http://groups.google.com/group/h2-database?hl=en. For more options, visit https://groups.google.com/groups/opt_out.