When we are using jdbc pool in tomcat, we are getting transaction lock which never use to happen earlier. We are using tomcat7
<Resource name="jdbc/bm"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
initialSize="34"
maxActive="500"
maxIdle="5"
username="root"
testWhileIdle="true"
removeAbandonedTimeout="60"
maxWait="-1"
removeAbandoned="true"
logAbandoned="true"
validationQuery="select 1"
validationInterval="60000"
driverClassName="com.mysql.jdbc.Driver"
password="timrotyo"
minEvictableIdleTimeMillis="30000"
timeBetweenEvictionRunsMillis="120000"
testOnBorrow="true"
url="jdbc:mysql://10.102.57.33:3306/brandmanagement?autoReconnect=true&useUnicode=true&characterEncoding=utf-8"/>
Exception:
2017-Aug-01 11:01:29,587 ERROR IRAppAccessInterceptor:54 -
org.springframework.dao.CannotAcquireLockException: Hibernate operation: Could not execute JDBC batch update; SQL [update table xxxxx]; Lock wait timeout exceeded; try restarting transaction; nested exception is java.sql.BatchUpdateException: Lock wait timeout exceeded; try restarting transaction
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:259)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:426)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:416)