使用jbpm3.2.3保存ProcessInstance的时候出现:
Lock wait timeout exceeded; try restarting transaction
原因:mysql的innodb是独占锁。
解决的办法有两个:
第一:innodb_lock_wait_timeout 锁定等待时间改大
my.ini文件:
#innodb_lock_wait_timeout = 50
修改为
innodb_lock_wait_timeout = 500
第二:把多个查询合并为一个查询执行,可以避免等待解锁时间。前面一个查询执行完毕后后面一个查询获得独占锁并执行。
mysql:innodb引擎
但是由于jbpm没有重写很多,所以只能更改自己的mysql了。
还有就是现在mysqlmy.ini文件中已经没有#innodb_lock_wait_timeout = 50,可以到其当前目录下面找其他ini文件,然后复制一个过来。