Spring-xd-批处理作业锁定

Spring-xd-batch job locking up

我正在使用 spring-xd 通过批处理作业获取数据。在 4 个容器中并行处理大量作业 运行。 10 到 40 个工作岗位之间的任何地方。其中大部分在不到一分钟内完成。我正在使用 redis(不是 rabbitmq)和 mysql 作为数据存储。 Spring-xd-batch 使用不同的 mysql-db 来获取 job/step 统计数据,而我的应用程序使用不同的 mysql-db 来实现其自身目的。 mysql-dbs 都在同一台服务器上。所有 4 个容器和管理员都指向同一个 mysql-db.

我注意到大多数时候,一切正常,但偶尔(至少每天一次),我确实遇到以下异常:

原因:org.springframework.dao.DataAccessResourceFailureException:无法获取 last_insert_id();嵌套异常是 java.sql.SQLException: 超过锁定等待超时;尝试重新启动事务。

这是spring-xd(不是我的应用程序)抛出的。该异常不特定于特定容器(它随机发生在任何容器上),也不特定于特定作业。

我花了时间除草 google。我已将我的 innodb_lock_wait_timeout 从 50 更新为 600。我已将我的 trx_isolation 从可重复读取更新为已提交读取,但其中 none 似乎没有任何区别。此外,我启用了慢速查询日志记录,但所有记录的查询都与引发异常的时间范围不匹配。

任何指点将不胜感激。

我的解决方法是将 *_seq tables 从 innodb 更改为 mysam 引擎。已经 运行 一个多月了,没有 table 锁定。