sql >> Base de Datos >  >> RDS >> Mysql

Interbloqueo al crear instancias de trabajo

El problema viene del candado compartido. De forma predeterminada, el método createJobExecution se ejecuta dentro de la transacción con un nivel de aislamiento serializable. Cuando se usa este nivel de aislamiento, InnoDB convierte implícitamente todas las declaraciones SELECT simples en SELECT ... LOCK IN SHARE MODE. Por lo tanto, JOB_INST_UN está bloqueado como compartido debido a una consulta en la tabla de instancias. Y luego, cuando se inserta una instancia de trabajo, se requiere un bloqueo exclusivo en JOB_INST_UN. Aparecía un interbloqueo, si este índice único estaba bloqueado compartido por otra transacción.